home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-03-29 | 159.0 KB | 4,949 lines |
- previous change history muddled at best (i can track things in my
- RCS files, but i did'nt keep a log).
-
- changes since first release of library with TOS gcc v1.35
- in cronologically increasing order:
-
- ChangeLog:: ++jrb
- New file.
-
- all makefiles:: ++jrb
- adjusted, CMakefile.* now add -fstrength-reduce to CFLAGS
-
- bcopy.s:: ++jrb
- replaces bcopy.c -- a better mouse trap :-)
- bcopy.s has lbcopy() entry point too.
- bcopy.c moved to notused/
-
- bcmp.c, bzero.c:: ++jrb
- added lbXX() entry points
- this makes lbcmp.c & lbzero.c redundant moved to notused/
-
- strchr,strrchr:: ++jrb
- now have entry points for index()/rindex()
- index.c & rindex.c moved to notused/
-
- unlink.c:: ++jrb
- now has entry point for remove()
- remove.c moved to notused/
-
- atof.c:: ++jrb
- redefined HUGE (to be ieee inf)
- HUGE defined in this way in <pmluser.h> (aka <math.h>) too now.
-
- ctime.c:: ++jrb
- cleaned up some ^M's in there
-
- dflonum.c:: ++jrb
- bug fix: defn of XXADDL was wrong (when -O, there were not
- enough constraints to let gcc know that the `zero' pointer
- was being decremented, so that it would re-load (XXADDL is used
- in a loop, this made it worse, since it just assumed it was
- constant and moved the init out of the loop).
- lot of constraints cleanup here and in flonum.h
- redundant defined commented out.
-
-
- dirent.c:: ++jrb
- moved mydat, olddta into opendir()
- cleanups (i am trying to put explicit casts for mallocs etc
- for the sake of compilers that dont understand protos).
-
- __DEFAULT_BUFSIZ__ :: ++jrb
- added an extern size_t __DEFAULT_BUFSIZ__ that is normally set
- to BUFSIZ, but you can override it at any point, and get default
- buffers of that size for buffered i/o (a cheap way to have large
- buffers, instead of putting setvbuf()'s all over the place,
- but its ansi non-compatible).
- changes in fxxx.c files refplect this addition.
-
- fputc.c:: ++jrb
- put in support for line buffered streams
- in main.c, stdout is now initialized line buffered
- in stdio.h _IOLBF was not unique, changed that.
-
- getlogin.c:: ++jrb
- logname is now dynamically allocated
- the length is no longer static (used alloca)
-
- getpw.c:: ++jrb
- file always open in text mode should _binmode(1) be in effect
-
- lseek.c:: ++jrb
- now incorporates BSD semantics too, where if you seek past
- eof you get a zero filled hole.
-
- ltoa.c:: ++jrb
- added strrev proto ifdef __STRICT_ANSI__
- (string.h has the ifdef to make it kosher)
-
- main:: ++jrb
- dynamisized _at_exit []
- this gets rid of ATEXIT_MAX (ansi says should be at least 32,
- hopefully we'll meet that and more)
- the return type of atexit() was opposite -- adjusted
- this also required adjustment in tmpfile.c
- stdout is now truely line buffered
-
- malloc.c:: ++jrb
- added
- _malloczero() that set/unsets flag to tell malloc to zero out blocks
- useful with TOS 1.4 where TPA clearing above BSS may be
- turned off. (see new util toglclr.ttp). Some badly
- written programs (gcc-ar for instance) assume malloc
- clears.
- _mallocChunkSize() lets you tune min chunk size.
- CAUTION: use _mallocChunkSize() to tailor to your environment,
- do not make the default too large, as the compiler
- gets screwed on a 1M machine otherwise (stack/heap clash)
-
- added entry points for malloc/realloc etc
-
- printf.c:: ++jrb
- added support for `#' flag
- added `h' flag
-
- prtfld.c:: ++jrb
- needed <string.h>
-
- qsort.c:: ++jrb
- totally replaced with one from dlib
- the one from dlibs needed quite a few fixes.
-
- read.c, write.c:: ++jrb
- added entry points for read()/write() when not __MSHORT__
-
- sbrk.c:: ++jrb
- added entry point for sbrk()
-
- setjmp.s:: ++jrb
- was bug ridden (thanks pekka!)
-
- strcat.c, strncat.c:: ++jrb
- moved check for null src to outer level
-
- system.c:: ++jrb
- cleanups
-
- tmpfile.c:
- everything dynamacized
- the atexit fn delete_tmpfile() now closes before removing
- this needed new data str.
-
- tmpnam.c:: ++jrb
- replaced sprintf with strcpy/strcat
-
- unx2dos.c:: ++jrb
- made the file name mapping functions more flex (thanks dale for
- suggesting the idea). the mapping functions now go through
- settable (via new function fnmapfunc()) function pointers to
- call the mapping routines. these pointers are by default
- initialized to _unx2dos/_dos2unx that were the old functions.
-
- scanf.c:: ++jrb
- float conversions (%ef) were severly broken. fixed.
-
-
- vfork.c:: ers
- New functions vfork() and wait() added.
-
- mktemp.c:: ers
- Fixed ranges and handling of multiple "mktemp"'s; because of a typo, the
- old version tried only one number, and if the file existed it gave up.
-
- localtime.c:: ers
- Added global variable timezone to hold timezone offset; also function
- tzset() to initialize it. (These seem common in Unixes).
- Fixed bug in calculation of timezone offset (EST5EDT was being translated
- as EST5:05EDT).
-
- system.c:: ers
- Added I/O redirection, using vfork().
-
- read.c:: ers
- Fixed some bugs due to evaluation of arguments in macro expansions.
-
- stat.c:: ers
- Fixed up values returned for st_mode to be consistent with chmod(); also
- added a check for executable files, so most regular files get permissions
- rw-rw-rw- instead of rwxrwxrwx.
- Also added a work around to TOS's refusal to find "." or ".." in an
- Fsfirst without wildcards.
-
- rename.c:: ers
- Changed so that rename(old, new) fails if "new" already exists. H & S
- claims this is implementation defined, and this way seems more intuitive
- to me. (If a later draft of the pANS changed this, let me know).
-
- access.c:: ers
- Removed the call to _unx2dos (it wasn't necessary, since stat calls _unx2dos).
-
- write.c:: ers
- Put def'n of __col_pos here instead of in read.c (to avoid pulling in
- read() unless necessary -- write always gets used).
-
- sgtty.c:: ers
- New functions stty() and gtty() added for compatibility with old code
- (e.g. curses).
-
- varargs.h, stdargs.h:: ers
- Added some checks to guard against both of these being included.
-
- osbind.h:: ers
- Fixed defn for Mshrink.
- Fixed defn of PE_CBASEPAGE.
- Moved defn of struct _dta to here from stat.h.
-
- types.h:: ers
- Removed #include of <time.h>, added a guarded definition for
- time_t.
-
- time.h:: ers
- Added a guard to typedef of time_t.
-
- stat.h:: ers
- Moved defn of struct _dta to osbind.h, where it belongs. Made a "real"
- definition for S_IFREG.
-
-
- NEW LIBRARY curses.olb:: ers
- . Combines BSD curses with Fred Fish's PD termcap
- library. Everything seems pretty standard. I made the following
- enhancements:
-
- If no termcap file can be found, the Atari ST's built in VT52 is assumed.
-
- A replacement for console_read_byte() is provided that allows binding of
- macros to keys with the call:
- console_set_key(int scancode, char *r, char *s, char *a)
- where "scancode" is the key scan code, "r" is the string to be sent when
- the key is pressed without any shift keys, "s" the string to be sent when
- SHIFT+key is pressed, and "a" the string to be sent when ALT+key is
- pressed. A NULL string leaves the previous key binding unchanged; an
- empty string "" erases any previous key binding.
- The new console_read_byte() is slower and takes more memory, so it only
- gets linked if -lcurses (or -lcurses16) is used and there is a call to
- console_set_key().
-
- New header files <curses.h> and <keycodes.h> are provided. <keycodes.h>
- has the prototype for console_set_key(), and has various scan codes
- provided as constants (e.g. F_1 is the scan code for the f1 key).
-
- fpprint.c: ++jrb
- replaced decfrexp with a hopefully better one
- added rounding at prec+1 (output certainly looks nicer now)
-
- scanf.c, printf.c, mktemp.c: ++jrb
- replaced expressions of the form
- n * 10 [n a integer]
- with TEN_MUL(n) == (((n) << 2) + n) << 1
- 10*n == 2(4n + n)
-
- atof.c:: ++jrb
- added ansi func strtod, atof now calls this.
- added d|D as valid chars for 'E' notation as per ansi.
- added proto for strtod to stdlib.h
- corrected bugs in counting total exp.
- now passes its builtin test (which is biased!)
- pulled out old dummy strtod #define from stdlib.h
-
- close.c:: ers
- Fixed bug with isatty status not being properly reset unless an error
- occured.
-
- unx2dos.c:: ers
- Added a check for two slashes in a row (a common error which can really
- make GEMDOS confused) and for a directory name with a trailing slash
- (Unix apparently accepts access("DIR/",0) as well as access("DIR",0)).
-
- curses.h:: ers
- Fixed definition of strlen to agree with definition in <string.h>
- (namely size_t strlen(const char *)).
-
- osbind.h:: ers
- Changed definitions of Fcreate, Fopen, and Fdup to cast result to long
- instead of short. This is because file handles for CON:, AUX:, and PRN:
- are word negative but not long negative, whereas errors are long negative;
- casting to short makes Fopen("CON:",2) appear to give an error.
-
- getcwd.c:: ers
- The GCC is too clever with this; I had to add the keyword 'volatile' to
- an array to stop it from optimizing away the test in:
- path[2] = '\0'; Dgetpath(path, 0); if (!path[2]) ...
-
- fflush.c:: ers
- Changed test for buffer full from (fp->_cnt) to (fp->_cnt > 0), since
- when reading fp->_cnt becomes < 0 at EOF, and the subsequent
- lseek(file,-fp->_cnt,1) call will (now) cause the file to grow.
-
- main.c:: ++jrb
- if stdout !isatty then make it a full buffered stream rather
- than a line buffered stream;
-
- fclose.c:: ++jrb
- cosmetic changes.
-
- fopen.c:: ++jrb
- freopen() was foobared (see comments there). new coding.
-
- setbuf.c :: ++jrb
- added bezerkly setlinebuf() and a few asserts.
-
- include/unixlib.h:: ++jrb
- added proto for setlinebuf()
-
- include/assert.h:: ++jrb
- changed assert #def'n for !__STDC__ compilers that don't
- do token pasting.
-
- fpprint.c:: ++jrb
- brought back the old version(sigh!)
- added rounding at prec
- This has to be redone. Due to prec. loss for numbers near 1 or near 10
- it prints stuff like "0.9:00e0" etc.
- now that modf() etc work almost exactly, we can re-code using those.
-
- Special thanks to peter housel who posted his x86 based floating
- lib. many of the alg used in the now improved floating support
- are fashioned after peters alg.
-
- norm.c:: ++jrb
- new file, normalize a ieee double
-
- atof.c:: ++jrb
- totally re-worked, now its much more like i wanted it to be.
- better test
-
- ldexp.c, modf.c, frexp.c:: ++jrb
- totally reworked. ldexp now always takes an int as it should have,
- so sldexp is no longer need for shortlib. (see #ifdefs in ldexp.c)
- better tests (see also pml/envtest)
- the combined test for ldexp/frexp is in frexp.c
-
- sldexp.c:: ++jrb
- moved to notused/sdlexp.c
-
- *akefile.16:: ++jrb
- took out sldexp.o target from all of them
-
- *akefile*:: ++jrb
- added target norm.o
-
- doprnt.c, sprintf.c, fprintf.c:: ++jrb
- Finally, adopted berkley's PD doprnt(). It does things right
- and much better than kludges i was trying to get especially
- the fpprint right (i still cannot come up with a alg for
- decrexp that does not loose badly on prec). appropriate
- adjustments made to sprintf.c and fprintf.c.
-
- fpprint.c, printf.c, prtfld.c:: ++jrb
- moved to notused/ because of above.
-
- *akefile:: ++jrb
- adjusted to above two changes.
-
- varargs.h, stdarg.h:: ++jrb
- fixed bugs when va_arg is expanded with type 'char'
- thanks to dale schumacher for detecting this.
-
- *makefile.*:: ers
- added abs.o (how did we miss this one???)
- fixed typo in makefile.16
-
- qsort.c:: ers
- added cast to an argument (needed for -mshort)
-
- vfork.c:: ers
- changed so that child process uses the same stack as the parent; this
- is what Un*x does, and saves memory.
- fixed wait() to be Un*x compatible.
-
- spawnve.c:: ers
- made storage for environment+args dynamic; gnu make was losing on
- big files (e.g. nethack) because 2K wasn't enough.
-
- system.c:: ers
- changed call to wait to agree with changes above.
-
- findfile.c:: ers
- fixed search for extensions (.ttp, .prg, etc) so that it works with
- _unixmode > 2.
-
- doprnt.c,scanf.c:: ers
- changed __NO_FLOATS__ to __NO_FLOAT__ to agree with makefiles.
-
- qsort.c:: ++jrb
- merged in minix changes (i have to support both!)
- as per ers change above, adjust arg for _wqsort()and _lqsort() too.
- additional assumption: if SHORT alignment is desired then
- it is ok to align a long at a short boundary too. this seems
- to be generally true (of course someone will come up with a
- weird machine where it is untrue - maybe intel!).
- To do : define a threshold and do insertion sort below threshold
- remove recursion
-
- qsort.c :: ++jrb
- Finally a qsort that kicks ass! (and works :-).
- the old one moved to notused/dl_qsort.c
- qsort.c: i started with doug smidth's version,
- first hacked it to handle SIZE sized items (his was ints only)
- the performance sucked, so i totally rewamped the algorithm in
- qsort(), following Sedgewick and suggestions in K V3.
-
- dflonum.c:: ++jrb
- House cleaning.
-
- fixnum.s:: ++jrb
- Merged in kai-uwe's code (thanks kai).
- Fixed a few bugs. Cleanup.
-
- popen.c:: ++jrb
- Added kau-uwe's popen/pclose with appropriate mods for this library.
- The basic difference was that this libraries system() already did
- re-direction, so we take advantage of that fact to avoid doing
- re-direction in popen/pclose. Thanks again kai-uwe.
-
- stdio.h:: ++jrb
- added protos for popen()/pclose() (in non strict ansi part).
-
- *akefile:: ++jrb
- reflect the addition of popen.c
-
- dirent.c:: ers
- fixed opendir() to work correctly with non-existent directories.
- Also made seekdir() actually do some work.
-
- sys/dir.h:: ers
- took advantage of undocumented feature of dirent.c, namely that
- d->reclen contains the length of the name.
-
- fixnum.s:: ++jrb
- kai-uwe's fixnum has problem. pulled it out and re-instated the
- old one. will look into whats going on.
-
- fixnum.s:: ++jrb
- fixed bugs in kai's version and put it back (it is much more
- efficient).
-
- fcntl.h, close.c, open.c, isatty.c, fhandle.c:: ++jrb
- replaced char __handle_stat[] with a open files status structure
- __open_stat[], that keeps more info around about open files,
- enabling impl of fstat(). later more fields can be added as required.
- Also Note: while making these changes, took care of the fact that
- the smallest valid gemdos handle is -3 and not 0. See
- __SMALLEST_VALID_HANDLE and __OPEN_INDEX macros in <fcntl.h>
-
- stat.c, stat.h :: ++jrb
- added fstat(int, struct stat *)
-
- scanf.c :: ++jrb
- floating conversion uses our super atof now after collecting the
- input number as a string.
-
- popen.c:: ers
- fixed up popen(cmd, "r") calls to redirect properly; also they
- return NULL if cmd fails (return code < 0).
-
- vfork.c:: ers
- changed to reflect the fact that exit codes are really short on
- the ST.
-
- gnulib2.c:: ++jrb
- new file. contains long long support for gcc, and a few funcs
- that moved over from dflonum.
-
- *akefile*:: ++jrb
- added gnulib2 targets
-
- close.c:: ers
- checked that __open_stat.filename was non-null before freeing
-
- malloc.c:: ers
- allowed free(0) to do nothing (I think ANSI wants this)
-
- open.c:: ers
- added _canonical() function to get full pathname of a file, so
- fstat() can work after a chdir().
-
- textio.c:: ers
- new functions to read/write text files doing nl conversion
- (this seems to crop up a lot, especially in GNU stuff)
-
- localtime.c:: ers
- fixed so that days have 24 hours, not 23 :-)
-
- strdup.c:: ers
- new function strdup() added (GNU and system V both use it)
-
- unlink.c:: ers
- changed so unlink of an open file works (well, usually)
-
- dup.c:: ers
- changed dup2 so that it closes the original file, and returns
- the file descriptor on success
-
- unlink.c:: ers
- deleted debugging print.
-
- traps.c:: ++jrb
- made changes corresponding to the osbind.h changes (stricter
- constraints so that ea is evaluated into reggies before we
- change the stack pointer from under gcc's nose).
-
- *akefile.32:: ++jrb
- removed spurious trap-X.o targets (they should only be in *akefile.16)
-
- crt0.s:: ers
- removed unneeded declaration of _main (crt0 calls __main)
-
- ftw.c:: ers
- new function (from System V) to do file tree walks
-
- minimal.h:: ers
- header file for programs that don't use stdio or any other "high
- level" stuff (basically programs that do all OS stuff directly
- through osbind.h). This results in a substantially smaller
- executable.
-
- linea.h:: ers
- a couple of cleanups of type mismatches. TODO: make linea0()
- a statement expression a la osbind.h (after all, it returns a
- useful value).
-
- dflonum.c:: ++jrb
- fix as per P.Deutch net article.
-
- spawnve.c:: ers
- made the handling of extended arguments compatible with the
- new GEMDOS standard.
-
- linea.h:: ++jrb
- replaced it with a new more complete version. supports inline
- linea bindings (inline is default unless __NO_INLINE__ if #def'ed)
-
- linea.c:: ++jrb
- support file for functional form of linea bindings.
-
- crt0.s, crtinit.c:: ers
- replaces crt0.s. NOTE: compatible with old MWC style startup and
- the new atari standard, except it does not check for
- command tail length == 127 for compatibility with older stuff
- and until shells are revised.
-
- crt0.c:: ++jrb
- combined functionality of crt0.s/crtinit.c into one file.
-
- *akefile:: ++jrb
- adjustments for crt0.c and line.c
-
- div.cpp:: ++jrb
- new file, implement ldiv() and div()
- note: these may not be used if -fpcc-struct-return
-
- div.c:: ++jrb
- a more portable ldiv()/div() compat with -fpcc-struct-return too.
- not used!
-
- *akefile:: ++jrb
- added targets for div.o
-
- fgetc.c:: ++jrb
- flush stdout before reading from stdin if stdin isatty and stdout is
- line buffered (more berklix cloning).
-
- fseek.c:: ++jrb
- bux fix: <unixlib.h> was not #include'ed, as a result all the
- lseek() calls were messing up on large files. Thanks to Bill Shroka
- for finding this. (and thanks to him for giving the library the benfit
- of doubt!)
-
- findfile.c:: ers
- added sanity check
-
- vfork.c:: ers
- added Mfree of environment. Also changed Makefiles to reflect
- necessity of a frame pointer
-
- system.c:: ers
- replaced calls to open() and close() with calls to Fopen() and
- Fclose(), to avoid problems with child process malloc'ing and
- free'ing
-
- *makefile.*:: ers
- used GNU Make's include feature to seperate common 16 and 32
- bit stuff
-
- unx2dos, support.h:: ++jrb
- adjusted types of first arg to mapping functions. should be
- `const char *'
-
- strchr, strpbrk, strrchr, strstr:: ++jrb
- cast return type to (char *)
-
- memchr:: ++jrb
- cast return type to (void *)
-
- getopt,strtol:: ++jrb
- cast assignments
-
- getpw.c:: ++jrb
- forward decl of nextent()
-
- strtol.c:: ++jrb
- replacement function, adapted from norbert schelenkar's stdio
- this detects overflow as req by ansi
-
- strtoul.c:: ++jrb
- replacement function, adapted from norbert schelenkar's stdio
- this detects overflow as req by ansi. new file.
-
- doprnt.c:: ++jrb
- eff hacks. (as far as i can tell i did'nt break it!)
- calls fputc() directly
- keith bostics type cleanup inc.
-
- fprintf.c, sprintf.c:: ++jrb
- doprint() does'nt need put fn arg any more.
- sprintf - fake a file pointer so that doprint can call fputc()
- new flag _IOSTRING in stdio.h to support this.
-
- filbuf.c:: ++jrb
- support function for getc(). getc() is now half way efficient
- (the old dlibs fgetc sucked). getc now a macro.
- new file
-
- fgetc.c:: ++jrb
- functional form of getc.
-
- fungetc.c:: ++jrb
- new file, broken out of old fgetc.c
-
- getbuf.c:: ++jrb
- new file, broken out of old fgetc.c
-
- fopen.c, fdopen.c:: ++jrb
- now call _getbuf() when file is opened rather than at first
- read/wr.
-
- main.c:: ++jrb
- call _getbuf() for std streams.
-
- fputc.c::
- dont call _getbuf() any more
-
- getw, gets.c, fgets.c:: ++jrb
- use getc() instead of fgetc()
-
- stdio.h: ++jrb
- getc() now a macros
- new flag _IOLOOKLF set when looking for lf across calls to
- _filbuf(). doing all of the above does seems to help
- performance.
- new flag _IOSTRING to support string FILE's for sprintf and
- friends.
-
- fread.c:: ++jrb
- dont call fflush(), instead use any buffered data.
-
- *makefiles:: ++jrb
- adjusted
-
- filbuf.c:: ++jrb
- improved translated processing. the copydown idea did'nt turn
- out to be so hot.
-
- crt0.c:: ++jrb
- added __DEFAULT_BUFSIZ__ processing here (ala _stacksize). Now
- __DEFAULT_BUFSIZ__ gets added to _stksize to try and make
- library initialed alloca's a little bit safer. Note useage
- of __DEFAULT_BUFSIZ__ has changed, now its more like
- _stacksize where you declare it as a initialized global
- ie: size_t __DEFAULT_BUFSIZ__ = <XXXX>L; (outside the scope of
- any function). Also note: if BUFSIZ is changed in stdio.h then
- that change must be reflected in crt0.c too. for obvious
- reasons we dont #include <stdio.h> in crt0.c.
-
- getbuf.c:: ++jrb
- deleted initial __DEFAULT_BUFSIZ__ processing from here, and
- made it extern.
-
- random.c:: ++jrb
- added for bsd compat. will try and work in the state stuff. for
- now it is just a copy of rand() with types adjusted.
-
- gnulib2.c:: ++jrb
- fixed __floatdidf as per net article.
-
- filbuf.c:: ++jrb
- type adjustment for var `f'
-
- fread.c:: ++jrb
- - added missing _IORW at top
- - if after consuming present buffer, the amount left to read
- is < fp->_bsiz, then read fp->_bsiz into buffer and give it
- bytes from there, instead of reading into user buffer. this
- helps a *lot* with large buffers, and is not too shabby with
- ordinary ones.
-
- fseek.c:: ++jrb
- rewrite: fseek() ,ftell() : give them some semblence of
- efficiency, rather than flush on every instance. some of
- the old dLibs stuff is really lacking in efficient use of
- the buffered data.
-
- fopen.c:: ++jrb
- moved _getbuf() out of _fopen() into fopen(). This simplifies
- freopen() and does'nt cause _fopen() called from freopen()
- to allocate a buffer.
-
- setbuf.c, setvbuf.c:: ++jrb
- if _IOMYBUF then free buffer first, since we _getbuf() on open now.
- if new discipline is _IONBF or new buffer NULL then use tiny
- buffer fp->ch (this was a bug in the old version)
-
- getbuf.c:: ++jrb
- if line buffered, make _bsiz min(__DEFAULT__BUFSIZ__, BUFSIZ).
-
- main.c:: ++jrb
- move test for stdio re-directed to before _getbuf(), so that
- it does the right thing.
-
- strtol.c:: ers
- strtol() (and hence atoi()) weren't working at all, because
- (short)LONG_MAX is a negative number.
-
- doprnt.c:: ++jrb
- in doprnt, ICONV compare number against 65535L instead of
- USHRT_MAX. The problem was that when !mshort, this generated
- a cmpl #-1,NUMBER as (unsigned short)~0 was promoted before
- the compare. TODO: fix limit.h so that such things dont
- kill you.
-
- fclose.c,fflush.c,fopen.c,fread.c,fwrite.c::
- fdopen.c,filbuf.c,fputc.c,fseek.c, main.c :: ++jrb
- the inplementation of update mode (w+, r+, r+w) was totally
- screwed up. it worked till now by sheer luck, because the
- buffers were being flushed and synced at evey fseek, ftell,
- fwrite etc. Chnaged the menaing of _IORW to mean that a file
- is open for update, and keep track of whether it was last
- read or written by setting/resetting _IOREAD and _IOWRT as
- appro (or clearing them both on a sync). This similar to 4.3
- but not exactly the same.
-
- fwrite.c:: ++jrb
- make better use of buffer, as per other changes.
-
- crt0.c:: ers
- changed all "ints" into longs so that it compiles the same with
- or without -mshort. moved definition of errno to main.c for the
- same reason
-
- stdio.h, fgetc.c, filbuf.c:: ers
- ftell/fseek on text files were broken; when we stripped all the
- carriage returns out of the input buffer, ftell had no way to
- tell the real binary position. changed getc() to an inline
- function which, like fgetc(), strips out the CR's as we go. this
- simplifies filbuf a lot. also: no need to check for _IODEV, since
- read() and write() already translate '\r' to '\n' where appropriate.
-
- utime.c:: ers
- added sanity checks
-
- crt0.c:: ++jrb
- fixed so that including the insufficient memory test does'nt
- cause the initial gemdos stack to blow up on a 1040. initially set
- the stack at hitpa, and then later set it to its final value.
- a dummy routine introduced to set up sp, which in turn calls
- the real startup routine (that was pushing too many registers
- on the gemdos stack causing it to blow up).
-
- crt0.c:: ++jrb
- The (new) meaning of _stksize: (thanks to allan pratt for the feedback)
-
- _stksize meaning
- -1L keep all of memory (except 8k at top) and do
- mallocs from own heap, with heap grown upwards towards
- stack, and the stack growing down towards heap,
- with a minimum slush between them so that they
- dont meet (only checked while malloc'ing). With
- this model, further spawning is not possible, but it is
- well suited for programs such as gcc-cc1 etc.
- Thanks to Piet van Oostrum & Atze Dijkstra for this idea
-
- 0L keep minimum amount of memory. this is also the
- case when _stksize is undefined by the user.
- 1L keep 1/4 of memory, free 3/4
- 2L keep 2/4 (1/2), free rest
- 3L keep 3/4, free 1/4
- other keep that many bytes
- -other keep all BUT that many bytes
-
- malloc.c:: ++jrb
- added code for allocating from own heap when _stksize == -1L
-
- main.c:: ++jrb
- as proposed by allan pratt, make gemdos handle 2 the file for
- stderr. then if isatty(2) Fforce(2, -1). this allows for
- re-direction of stderr (by shells that can) to a file. if
- stderr is not re-directed it is Fforce'd to gemdos handle -1
- (console). if it is re-directed, stderr becomes a full
- buffered stream.
-
- sflonum.s:: ++jrb
- replacement __cmpsf2 courtesy of Piet van Oostrum.
-
- unlink.c:: ers
- was missing proto for malloc.
-
- crt0.c:: ++jrb
- sp was being set incorrectly to (bp->p_tbase + m) instead
- of (bp + m). (m already includes sizeof(BASEPAGE)
-
- gnulib2.c:: ++jrb
- added missing proto for __fixunsdfdi()
-
- stdio.h:: ers
- added proto for _filbuf(), needed for getc().
-
- string.h:: ers
- provide inline definitions for strcat, strcpy, and strlen
- (these can be undone by #undef strcat, etc.)
-
- malloc.c, sbrk.c:: ers
- move HeapAlloc from malloc.c to sbrk.c, and merge its functionality
- into lsbrk()
- provide dynamic readjustment of MINHUNK, so that a program that makes
- lots of little requests is less likely to run into the 20 malloc bug
-
- strchr.c, strcmp.c, strcpy.c, strlen.c, strncat.c, strncmp.c, strrchr.c:: ers
- adjustments to reduce code size and improve execution speed
-
- fopen.c:: ers
- allow for open() to return TOS's (word) negative special file
- handles.
- make TTY's line buffered instead of unbuffered, so that the
- editing functions in read.c can work. (this mod is not
- complete: it is in preparation for upcoming dev driver
- interface for character devices ++jrb)
-
- sbrk.c:: ++jrb
- the asm for sbrk was in the wrong place.
-
- ( (thanks edgar)
- a general warning about the asm dirty trick for multiple
- entry points: if the routine has strings you cannot use it
- as the compiler compiles strings into text area, and these
- are put before the function entry point, so the asm() would
- fall into the strings. suggested work around:
- asm(".text; .even; .globl _fooalias,_foo; _fooalias: jra _foo");
- seems to be the safest way of doing this. (warning: if there
- is no intervening text between _fooalias: and _foo: then
- you'll get a 0 offset error from gas. if you use sun /bin/as it just
- generates a bad opcode! when this is the case our old trick
- is the one to use.)
- )
-
- main.c:: ers
- changed so stderr doesn't get set redirected if we're called from
- a sensible shell (i.e. one that understands the standard ARGV
- conventions)
-
- assert.h:: ++jrb
- slightly improved (per gcc v1.37)
-
- fprintf.c:: ++jrb
- adjusted __eprintf for improved assert.h
-
- gnulib2.c:: ++jrb
- bug fixes (per gcc v 1.37)
-
- limits.h:: ++jrb
- replaced: with output of config
-
- float.h:: ++jrb
- replaced: with output of config (still lies a little bit! the
- output is from running `config -f' on a Sun)
- (we really need to fix up some of the float stuff -- where are
- you Kai-Uwe)
-
- Acknowledgements: most of the fixes below are from Edgar Roeder from
- diff he sent me for emacs with this lib. Thank you very much!! we will
- be incorporating more of his ideas as the pluggable char devices
- interface takes shape.
-
- atof.c:: ++jrb
- dont clear errno (edgar)
- recognizes trailing F or L
-
- qsort.c:: ++jrb
- fixed signed/unsigned compare problems (i cant believe i made
- this mistake)
-
-
- errno.h, perrror etc etc:: ++jrb(edgar)
- made all errno's positive. so much more convenient! why did we
- have this brain damage in the first place?
-
- grep errno *.c:: ++jrb(edgar)
- return positive errno's
-
- fcntl.h, ioctl.h,keycodes.h,setjmp.h,signal.h,support.h,sysvars.h
- tchars.h,times.h:: ++jrb(edgar)
- adjustments for emacs (some of the stuff in there is not fully
- implemented , but will be with the upcoming device interface).
- Thanks to edgar for all the emacs changes.
-
- *: ++jrb
- got rid of RCS headers wherever i found them. they just cause
- lots of unnecessary diffs.
-
- crt0.c:: ++jrb (thanks edgar)
- - acc support
- - dump friendly
- New acc convention:
- crt0 now detects acc. if a program wants to run as an acc (or
- both as an acc or app), then it must
- - set _heapbase to bottom of heap+base
- - set _stksize to size of heap+base
- - at startup: sp set to the top and malloc() will
- happen from heap.
- (note: malloc() *not* Malloc())
-
- New dump convention:
- undumpable programs set _initial_stack to desired value.
- _stksize is set from this at each startup, and malloc()
- happens from own heap. (which implies
- _initial_stack == heap+stack size)
-
- crt0.c:: ++jrb
- - bug fix: the from area of old style cmdline was not being
- terminated properly. (showed up when fast bit is set)
- - fix up env to new style when we get a old style env.
- (bill -- tell me how lharc does from arcshell now)
-
- sysvars.h:: ++jrb
- New convention:
- all sysvars defined as a address pointer of the correct type.
- to access their value, you just have to dereference in
- super mode.
-
- sysvar.c:: ++jrb
- Long get and set a sysvar. Note the use of volatile. guess
- what happens if you dont use it!
-
- all makefiles:: ++jrb
- adjusted for new targets
-
- abort.c:: ++jrb
- for now raise SIGIOT. once the signal stuff is complete we'll
- raise SIGABRT as it should.
-
- access.c:: ++jrb
- check owner modes, now that we do *real* modes. see stat.c
-
- clock.c:: ++jrb
- returns # of ticks since start of process. new variables
- _start_time initialized in _main(). _child_time and _sys_time
- are maintained by spawnve.c (_sys_time is 0 for now always)
- this info is stuffed into the tms buffer by times().
-
- dirent.c:: ++jrb
- opendir(): run name through unx2dos() before Fsfirst'ing.
- ino's are initialized from a up-counter (note: see stat too)
- we should probably be looking at a way to set them to their
- fat #.
- (note: d_reclen is not posix, its bsd'ism)
-
- dup.c:: ++jrb
- set __open_stat on dup too.
-
- fflush.c: ++jrb
- copy fp->_cnt into local before writing/clearing in case the write is
- interrupted.
-
- fhandle.c:: ++jrb
- adjustments for new __open_stat struct
-
- fopen.c:: ++jrb
- adjust open mode
-
- main.c:: ++jrb
- avoid all static initializations.
- initialize clock variables
- make stderr rw for brain dead people
- exit with return value of main as be ansi C
-
- malloc.c: ++jrb
- exchanged entry point and their aliases.
- merged in edgars changes to shrink heap if free'd block is at
- the top of the heap.
-
- open.c:: ++jrb
- better mode handling.
- set additional fcntl flags in __open_stat
-
- sbrk.c:: ++jrb
- return -1 on error
- if doing heapallocs and n == 0 return _heapbase
-
- scanf.c: ++jrb
- handles short values correctly
- add %n
-
- setvbuf.c:: ++jrb
- if bp is null, alloc it
-
- signal.c:: ++jrb
- _init_signal() : initializes sig_array instead of static
- initialization. (it'll do more soon). called from crt0.
-
- sleep.c:: ++jrb
- sleep, usleep use clock()
-
- spawnve.c:: ++jrb
- keep track of child_runtime
-
- stat.c:: ++jrb
- *real* mode bits
-
- tchars.c:: ++jrb
- added (yet unsupported) tchars
-
- times.c:: ++jrb
- stuff _chaild_runtime etc from variables and clock()
-
- osbind.h:: ++jrb
- another major re-hack:
- -- the basic reason: there was just no reliable
- way to get the definitions (inline or not does'nt matter) to
- fully evaluate the args before we changed the sp from under it.
- (if -fomit-frame-pointer is *not* used, then most of the time
- we dont need to do this, as things will just reference off of
- a6, but this is not true all of the time).
- my solution was to use local vars in the body of the statement
- exprs, and initialize them from the args of the statement expr block.
- to force the evaluation of the args before we change sp from
- under gcc's feet, we make the local vars volatile. we use a
- slight code optimization heuristic: if there are more than 4
- args, only then we make the local volatile, and relax
- the "r" constraint to "g". otherwise, we dont put the volatile
- and force the evaluation by putting the "r" constaint. this
- produces better code in most sitiations (when !__NO_INLINE__
- especially), as either the args are already in a register or
- there is good chance they will soon be reused, and in that
- case it will already be in a register.
- it may (the local vars, especially when no volatile)
- look like overhead, but in 99% of the situations gcc will just
- optimize that assignment right out. besides, this makes
- these defines totally safe (from re-evaluation of the macro args).
-
- -- as suggested by andreas schwab (thanks!)
- (schwab@ls5.informatik.uni-dortmund.de) all the retvalues are now
- local register vals (see the extentions section in the info file)
- this really worked out great as all the silly "movl d0,%0" at
- the end of each def can now be removed, and the value of
- retvalue ends up in the correct register. it avoids all the
- silly "mov d0,[d|a]n" type sequences from being generated. a real win.
- (note in the outputs "=r"(retvalue) still has to be specified,
- otherwise in certain situations you end up loosing the return
- value in d0, as gcc sees no output, and correctly assumes that the
- asm returns no value).
-
- -- all the n's (the function #'s for the traps) are now given
- the more relaxed "g". This again results in better code, as
- it is always a constant, and gcc turns the movw %1,sp@- into
- a movw #n,sp@-. we could have given them a "i" constraint too,
- but "g" gives gcc more breathing room, and it does the right
- thing. note: the n's still need to have "r" constraints in the
- non-inline form (function form), as they are no longer constants
- in the function, but a normal arg on the stack frame, and hence
- we need to force evaluation before we change sp. (see osbind.c)
-
- -- straps.cpp and traps.c are history. we dont need no stinking
- non-reentrant bindings (straps) or incorrect ones (traps.c :-)
-
- osbind.c:: ++jrb
- new file. contains non-inline bindings for both 16 or 32 bit
- lib. straps.cpp and traps.c are history.
-
- *akefile:: ++jrb
- adjustments for above
-
- string.h:: ++jrb
- inline __strcat was'nt returning dest.
-
- isatty.c:: ++jrb
- check return value of Fseek against -EBADARG since errnos are +ve
- Fseek with SEEK_SET instead of SEEK_END
- (btw: atari's example in the T1.4 supplementary docs for
- isatty() is wrong)
-
- rename:: ++jrb
- typo, (should be if(rval < 0) errno = -rval)
- if newname exists, delete it first (this is BSD'ism, buts thats
- ok because my handy ansi draft says "if a file new exists prior
- to call, the behavior is impl. defined"
-
- crt0.c:: ++jrb
- __data_start removed as it can be determined from basepage.
- return from acc now calls _exit() directly not exit().
- its just too bad if an acc falls out like this. not much we
- can do.
-
- times.h, time.h:: ++jrb
- time_t guarded by _TIME_T rather than __TIME_T_DEFINED to
- be consistent with size_t beging guarded by _SIZE_T
-
- param.h:: ++jrb
- added definition of HZ. users may want to adjust
- the definition for local standards.
-
- times.c:: ++jrb
- use definition of HZ from param.h
-
- sleep.c:: ++jrb
- units for usleep were incorrect. HZ was a misnomer there.
-
- memccpy.c, memcpy.c:: ++jrb
- size_t is unsigned, so <= 0 type comparisons dont make sense
- (and limit range)
-
- minimal.h:: ++jrb
- _exit() now in crt0
-
- gmon.c:: ++jrb
- true profiling comes to tos-gcc. profil(2), monitor(3)
- and friends. gprof distributed in a seperate dir.
-
- crt0.c:: ++jrb
- added #ifdef for making gcrt0.o for profiling. the front
- end gcc.ttp, will automatically link in gcrt0.o for the
- startfile, when `-pg' option is used. NOTE: unlike under
- unixen, cc -pg will not want profiled libraries. if you
- want to link in profiled libraries, you have to explicitly
- link them in.
-
- *akefile:: ++jrb
- adjust for above
-
- qsort.c:: ++jrb
- turns out we were over-collapsing the walls! check left and right
- pts dont cross hi and lo resp.
-
-
- rename.c:: ers
- fix so return value is always -1 on error
-
- fork.c,vfork.c:: ers
- completely new way of doing vfork(), combined with a way to emulate
- fork(). of course, the parent has to wait until the child is
- done, but they both get copies of the same data space.
-
- exec.c:: ers
- new file; emulate execve and execv (execl* and exec*p to follow).
-
- spawnve.c:: ers
- changed to implement P_OVERLAY (this doesn't really work yet; all
- it does is _exit(spawnve(P_WAIT, ...))).
-
- *makefile*:: ers
- fixed iio.olb (before, the files that were in it weren't usually
- linked, since they weren't needed yet; added fprintf.o, sprintf.o,
- etc.)
-
- memory.h, stdlib.h:: ++jrb
- proto for alloca only if alloca() is !defined. typically we
- #define alloca __builtin_alloca.
-
- dflonum.c, sflonum.s, fixnum.s:: ++jrb
- obsolete: please mv these files to subdir notused/
-
- all float/double/long support routines:: ++jrb
- thanks to Kai-Uwe Bloem (I5110401@DBSTU1.BITNET) for the complete
- replacements. these routines really do work well. to see the
- difference try pml/pmltests/* before and after. thanks kai-uwe!
- (see README.FP and the _*.s files for more details).
-
- *akefile*:: ++jrb
- adjusted for above
-
- gmon.c::
- use etv_timer as it saves reggie and does the clock/4 etc,
- less overhead. the old code (that used timer C intr) is still there:
- to activate it -D_USE_TIMER_C_.
- when un-installing, dont check for GNUC signature, just _XBRA_MAGIC
- any handlers found before myself that dont use XBRA are nuked as
- they may end up calling the handler we are de-installing. If
- they happen to have another XBRA friendly handler as their next,
- which is not the one we are de-installing, its tough luck, as
- we cant find their next, we just install our next into the exception
- vector.
- Thanks to edgar for the suggestions.
-
- _normdf.s _normsf.s:: kub
- export ___normdf entry to C language. Rename the internal entry to a name
- not accessible from C to prevent crashes
-
- _addsubdf3.s _addsubsf3.s _divdf3.s _divsf3.s _extendsfdf2.s
- _floatsidf.s _muldf3.s _mulsf3.s _truncdfsf2.s:: kub
- adjust for the re-named entry points in _normdf.s and _normsf.s
-
- _divmodsi3.s _udivmodsi3.s:: kub
- small bug fix: numbers having bits 30 or 31 set would eventually fail.
-
- _normdf.s. *akefile:: ++jrb
- change interface of __normdf to expects ints instead of shorts
- for exp, sign, and rbits. easier to interface this to !-mshort code
- this way. change name of _normdf.s to _normdf.cpp, and preprocess
- it in the makefile for #ifdef __MSHORT__.
-
- atof.c, frexp.c, modf.c:: ++jrb
- use the new __normdf() entry point instead of norm.
-
- norm.c: ++jrb
- redundant and obsolete. mv to notused/
-
- mincl.32, mincl.16, gmakefile.16, makefile.16:: ++jrb
- make was attempting to make $(GLIB2) over and again. added
- dummy target gl216done in turn depends on gnulib2.c. it is touch'ed
- once GLIB2 has been made. (which means you must have or write
- touch.ttp). in *akefile.16 added CLFLAGS, the flags required for
- things that will be compiled with 32 bit intergers in the -mshort lib.
-
- norm.c, _normdf.cpp, atof.c, frexp.c, modf.c:: ++jrb
- resurrect norm.c from not used (it refuses to die!).
- __normdf() is doing something strange with the C entry point, and loosing
- the sign bit. (the asm entry seems to be fine). in atof/frexp/modf
- #define __normdf norm and bring norm.c back.
-
- fwrite.c:: ++jrb
- after fflush()'ing when space goes to zero (but we are'nt finished
- necessarily with the write request), if _IORW set _IOWRT flag, otherwise
- we loose what we write in the buffer subsequently if read or seek happens
- before the next flush. zoo showed up this bug. i can hardly belive it survived
- this long! ARRRRRRRRGGGGGGGGGGGGGGGHHHHHHHHHHHHHHH!! (i feel much better now)
-
- ldexp.cpp, frexp.cpp, modf.c:: ++jrb
- replace the .c files of the same name.
-
- *makefile:: ++jrb
- adjust for above
-
- crt0.c:: edgar
- detect prog/acc by testing sp instead of a0 for the benfit of
- pack/unpack and friends that dont clear a0 when launching an app.
-
- ctype.c:: edgar
- added two location before _ctype[] to catch isXXX(EOF) tests.
-
- stat.h:: edgar
- make st_mode unsigned short type (some programs use st_mode as
- an index into an array, negative indicies make them blow up).
-
- atof.c:: ++jrb
- cleared up my confusion with __normdf(). i was forgetting
- about denormalized numbers, and needed to call ldexp() instead of stuffing
- the binary exponent directly into the result at the bottom of __adjust().
- norm.c can now be safely mv'ed to unused.
-
- *akefile:: ++jrb
- adjusted for above. in mincl.* took out the dummy glib*done targets
- they we not required. the problem bill was seeing was due to the incorrect
- def for GLIB2 in mincl.16. it should just be "gnulib2.o".
-
- stddef.h:: ers
- changed definition of EXIT_FAILURE from (-1) to (1) to agree with
- Unix
-
- sys/dir.h, dirent.h:: ers
- merged into one file, and updated to allow caching of directory
- information for stat()
-
- stat.c:: ers
- stat() now communicates with the dirent functions, so that a "stat"
- on a file in an open directory doesn't have to go back to disk
- (opendir() gets all the information stat() needs for free, so we
- might as well save it).
-
- grp.c, grp.h:: ers
- primitive group id/name functions now provided
-
- stat.h:: ers
- include <types.h> if it hasn't already been included
-
- string.h:: ers
- provide inline version of strdup(), for benefit of the library
-
- perror.c:: ers
- all the error messages were in the wrong order now. oops.
-
- lots of places:: ers
- added new code to handle symbolic links. whether or not to use
- them is up to the user, via the environment variable UNIXMODE
- (which also controls other forms of directory mapping, too).
- still to do: code to prevent conflicts for long filenames,
- and proper documentation for UNIXMODE.
-
- chmod.c:: ers
- Changed to silently ignore attempts to chmod() a directory (TOS
- doesn't give any real permissions to directories anyways).
- umask() moved to open.c
-
- console.c, signal.c:: ers
- Only steal keypresses if we really have to check for signals.
- This removes aggravating inability to type ahead while looking
- at output from utilities.
-
- crt0.c:: ers
- remove all occurences of "int" keyword, add comment to remind us
- not to use ints, since crt0.o should be the same for 16 and 32
- bits.
-
- dirent.c, symlink.c, stat.c:: ers
- improve "shadowing" code so that aliases for long filenames work
- exactly like the original files, and the originals don't appear
- in directories if _lAUTO is set. Also allow the ".dir" file to
- be hidden.
-
- mincl.16:: ers
- GLIB2 should just be gnulib2.o, I think (as in mincl.32). Perhaps
- that's what was causing the wierd loops.
-
- open.c:: ers
- added a more useful umask().
-
- spawnve.c:: ers
- oops, was clobbering "mode" when its value would be needed later.
- exec() should work now!
-
- symdir.h, unx2dos.c:: ers
- cleaned up flags, removed unused ones. Added "H"ide (hides the
- .dir file) and "r"oot (used to specify a default root drive;
- e.g. "rC" causes "/bin/sh" to translate into "C:\BIN\SH" no
- matter which drive is current. Useful if the "r" drive has
- symlinks like "usr->D:", so "/usr/bin" is "D:\BIN".
-
- Fix up compatibility code to be really compatible (the _unixmode
- variable never gets set until runtime).
-
- symlink.c:: ers
- add a (fake) link() call. clean up lstat() to take better
- advantage of stat's intelligence.
-
- stat.h:: ers
- add definitions for major(), minor(), and S_IFBLK
-
- string.h:: ers
- nuke inline strdup(); there were conflicts over the type of
- "malloc()".
-
-
- frexp.cpp, ldexp.cpp, _normdf.cpp:: kub
- better support for 32 bit ints (when used as exponents that is)
-
- device.h, stat.h, types.h,
- chdir.c, mkdir.c, open.c, rename.c, rmdir.c, spawnve.c
- stat.c, symdir.h, symlink.c, unlink.c, unx2dos.c, utime.c:: ers
- Here are diffs to support the "/dev/" directory. Although the "device.h"
- file claims to describe user definable devices, that isn't done yet;
- for now only the console, printer, and rs232 are supported, as well as
- Edgar's /dev/A/ alternative to A:, etc. There are some minor cleanups
- to the _unx2dos code to recognize device names; also, stat() has been
- fixed to deal with devices (so "ls -l CON:" works now!).
- _unx2dos now returns symbolic constants defined in symdir.h.
- note the name change of unx2dos to _unx2dos all over.
-
- *akefile*:: ++jrb
- s/CPPFLAGS/PPFLAGS/g because gnumake insisted on automatically
- adding CPPFLAGS to CFLAGS (this behavior is a little strange)
- thanks to bill shorka.
-
- *akefile:: ++jrb
- i finally got sick of dealing with all these makefiles.
- merged all the common parts into a new include files "mincl"
- adjusted makefile.16, makefile.32, gmakefile.16, gmakefile.32
- these are now used for both native atari and unix based
- cross-compiling using gnumake. i have a Makefile that i
- use for compiling that invokes gnumake on makefile.*
- and gmakefile.* with CC, AR, CPP etc as args.
-
- please remove CGMakefile.* CMakefile.*, mincl.16 and mincl.32
-
- stat.c:: ++jrb
- was not setting st_nlink for regular files
-
- unx2dos.c:: ++jrb
- was not covering the case "/dev/D" (its odd to me atleast to
- type "ls /dev/D/", instead of "ls /dev/D")
-
- _normdf.cpp, ldexp.cpp, frexp.cpp:: ++jrb
- quotes in comments were thowing gcc-cpp -P off (sorry i forgot
- about this).
-
- dirent.c, stat.c :: ++jrb
- dta was not being reset back to orig dta before returning in
- two cases. this may cause problems as the dta was set to a local
- structure.
-
- unlink.c:: ++jrb
- initialize dir = NULL at the top, so that _free_symdir()
- doesnt get junk when !ent and it is called. thanks to allan
- who reported and suffered thru this bug!
- Check in all files for any more instances of the same thing. they
- seem to be ok.
-
- time.h:: ++jrb
- changed components of struct tm to be of type int rather than
- short as per ansi sec 4.12.
-
- main.c:: ++jrb
- let the implementation dependent exit value of main be EXIT_SUCCESS
- if main() fall thru.
- this saves us a lot of headaches while porting, and is compliant.
-
- gemdefs.h, obdefs.h:: ++jrb
- new files. aliases for gemfast.h to make porting easier.
-
- close.c:: ers
- allow for device file names (open keeps track of them for fstat now)
-
- ftw.c:: ers
- try to be smarter about whether to use '\' or '/' in file names
-
- rename.c:: ers
- watch out for renaming when the new file name has the same _unx2dos
- result as the old one
-
- stat.c,rmdir.c, unlink.c:: ers
- if links are active, insist that the proper file names are given
- (so the user doesn't accidentally delete "foo" when s/he asked to
- delete "Foo")
-
- stat.c, symlink.c:: ers
- fixed up some comments, moved lstat to stat.c, fixed fstat to
- not try to search through links (it already has the DOS name
- given)
-
- unx2dos.c:: ers
- if _lAUTO is on and a filename is given that needs changing for
- DOS or that already exists as a link, make sure that its DOS
- name is unique. Doing this here saves a *lot* of hassle in
- functions all over the place. Not extensively tested yet,
- but seems to work. We can probably do better than the present
- algorithm.
-
- chdir.c:: andreas schwab
- fixed up if expression.
-
- linea.h:: andreas schwab
- fixed up typo in cast for linead (last arg)
-
- sys/ioctl.h:: ++jrb
- another alias for ioctl.h
-
- getcwd.c:: ers
- Don't add the '\' for the root directory. This makes everything
- consistent; getcwd() always returns a path without trailing '\'.
- If symbolic links are on, use _full_unx2dos (see below) to
- look for long names, etc.
-
- link.c, symlink.c, mincl:: ers
- link() moved to a separate file, so that programs like "tar" that
- supply a copying version of link won't have problems
-
- unlink.c:: ers
- major bug in handling of automatic link deletion corrected (this
- bug caused a crash when an error occured during unlink()).
-
- unx2dos.c:: ers
- add a routine, _full_dos2unx, which searches along the path looking
- for automatic symbolic links to the components, so that the unix
- name reflects what the user wanted.
-
- ftw.c:: ers
- fixed the algorithm for deciding what kind of slash to use; it works
- now if no slash appears in the original name
-
- symlink.c:: ers
- fixed readlink() to work correctly when the link being read points
- to another symbolic link
-
- close.c, ioctl.c, isatty.c, open.c, read.c, unx2dos.c, write.c:: ers
- allow user defined "plug-n-play" devices
-
- screen.c, screen.h, mouse.h:: ers
- sample plug-n-play mouse and screen devices, like the Minix gkernel
- /dev/mouse and /dev/screen
-
- minimal.h:: ers
- add _init_signal so as to avoid dragging in the signal routines,
- and change _main to pass argc and argv on to main (since crt0.c
- parses the arguments anyways, we might as well let people use them!)
-
- dirent.c:: ers
- fix a bug whereby failure to open the ".dir" file when auto links
- are active could cause a crash (actually, this only happened when
- the error exit code is not ENOENT)
-
- spawnve.c:: ers
- allow mode == P_NOWAIT for microRTX and MiNT
-
- spawnvp.c:: ers
- put error code in "errno" and return -1 on failure, instead of
- returning the (now positive) error code
-
- findfile.c::
- terminated a string that didn't used to be terminated
-
- write.c::
- made all terminal writes go through console_write_byte
- (so signals will always be checked); also checked and
- turned off '\n' -> '\r\n' translation when the terminal
- is in RAW mode (curses, for example, seems to expect this)
-
- keycodes.h::
- fixed definitions of the ALT_1 through ALT_0 keys
-
- getw.c:: ++jrb
- getl() had an incorrect mask. thanks to Rainer,ro@thp.Uni-Koeln.DE
-
- atof.c:: ++jrb
- __adjust should have been static
-
- filbuf.c:: edgar
- do not remember EOF if input comes from a tty (er)
-
- atof.c:: edgar
- change overflow condition in tem_mul(). ( was causing
- truncation at the 21'st digit)
-
- fopen.c:: ++jrb
- freopen(): if the file is already open, close it. If it was closed
- its fine. (used it be: it failed if file was closed -- thnaks bill)
-
- sysvars.h:: ++jrb
- added OSHEADER
- (note: atari (tos 1.4 addendum) docs for os_date incorrectly states
- that the format is $YYYYMMDD -- it is really $MMDDYYYY)
-
- linea.h:: ++jrb
- adjusted logic ops. thanks alan.
-
- main.c:: ++jrb
- make at_exit() a little safer by not loosing _at_exit[] when
- realloc fails. thanks allan.
-
- main.c:: ++jrb
- exit with returned value from main(). if its junk, then the
- users main() needs to be fixed (no way to find out if returned
- value is junk or not).
-
- main.c:: edgar
- initialize __open_stat for the standard file descriptors
-
- close.c:: edgar
- check __open_stat.filename before freeing
-
- dirent.c:: ++jrb
- dont check return value of Fsetdta (it does'nt have one)
-
- exec.c, spawnvp.c::
- make execve more robust by checking X bit of stat.
- add execl and execvp
-
- getuid.c:: edgar
- add geteXXX()
- for uid's return the value of var uid, instead of hardcoded 1
-
- getpid.c:: edgar
- add getppid()
-
- grp.*:: edgar
- add passwd field to grp structure
-
- stat.c:: ++jrb
- dont check return value of Fsetdta (it does'nt have one)
-
- basepage.h::
- elaborate it further
-
- dirent.h::
- change defn of DIRSIZE
-
- gemfast.h::
- mf_fg/bg were swapped in MFORM str.
-
- osbind.h:: edgar
- adjust return value types of various bindings.
- added some system str types
-
- pwd.h:: edgar
- add defn for pw_comment
-
- vt52.h:: frank
- new file, thanks frank
-
- assert.h::
- change defs. pass __LINE__ as a long. __eprintf is expects a long.
-
- fprintf.c::
- adjust types for args to __eprintf
-
- errno.h::
- merged in many aliases. not sure if we a blatently currupting
- the name space.
- fcntl.h::
- minor adjustments. added the flock defs etc for MiNT. ERS i am
- not sure i understand why __SMALLEST_VALID_HANDLE should
- be 0 when !MSHORT (i know that handles are only word -ve, but
- when you assign to int, it will get sign extended).
-
- gemfast.h::
- choose between defferent defs of struct MFDB by using
- __MFDB__ or __ALT_MFDB__ pre-processor symbols. (cp this
- to gemlib src directory too).
-
- ioctl.h::
- add defs for EVENP, ODDP, change def of LCASE. ers: why did
- you del all the defs for baud rates?
-
- limits.h:
- added the POSIX defs. they dont mean much.
-
- linea.h::
- fix defs for linea7, and linead. fix proto for linead when no inline.
-
- linea.c::
- do the same in linea.c
-
- memory.h::
- use compiler.h, get rid of silly compatibility names
-
- minimal.h::
- make everything go thru extern func __exit() instead
- (note not _exit(), otherwise main.o gets pulled in, which
- is not what we want)
-
- osbind.h::
- add TT bindings.
-
- osbind.c::
- same here. also fixed return retvalue; all over.
- i guess people must never __NO_INLINE__ otherwise this
- should have shown up. (actually no, since retvalue happens
- to be in d0 already!).
-
- param.h::
- rm old args for NCARGS -- now its as much as free mem
- ERS note NO change def of HZ to 200. there is too much
- code assuming HZ == 60, so we must scale the 200 ourselves.
-
- siglist.h, signal.h::
- replace with ers's files
-
- stat.h::
- correct types
- add def for S_IFIFO
-
- stddef.h::
- use compiler.h
-
- stdio.h::
- use compiler.h
- use alt inline keyword when inlining getc
-
- stdlib.h::
- use compiler.h
-
- string.h::
- use compiler.h
- use alt keyword __inline__ when inlining
-
- time.h::
- use compiler.h
- typedef for timeval
-
- types.h::
- use compiler.h
-
- compiler.h mintbind.h resource.h unistd.h wait.h regexp.h::
- new files (mintbind, resource and wait.h are #ifdef __MINT__ protected)
-
- sys/errno.h sys/resource.h sys/signal.h sys/wait.h::
- new files
-
- ctype.c:: ++jrb
- ctype should accomodate all UCHAR max characters.
- make the type array UCHAR+2 long, accomodating EOF as
- the first element. that way you dont have to depend on
- a seperate array being contiguous right before the type
- array, to accomodate EOF. make ctype a pointer into
- this type array[1]. thanks jens.
-
- ctype.h:: ++jrb
- adjust decl of _ctype
-
- fork.c:: andreas
- move the code to save the stack data after the point where
- newbase is initialized. needed due to diff in the way reg allocation
- is done in gcc ver > 1.37. thanks andreas.
-
- _addsubfs3:: andreas
- It bites you when you add an insignificant number
- to another one, so that the difference between the exponents is
- greater than 24. In this case the result is in the wrong register. It
- seems that someone has `optimized' this in.
-
- mktemp.c:: ++jrb
- dont always start tryng to make a temp file @ XXXXX0, instead
- start trying at XXXXX0+startat. this ensures that consequtive
- calls to mktemp() with actually creating files, yields unique
- names (in the same process of course). for MiNT incorporate pid
- or something.
-
- osbind.c:: ++jrb
- adjusted proto for trap_14_wwwl
-
- strstr.c:: ++jrb
- need proto for strncmp not strcmp
-
- atof.c:: ++jrb
- added tests for 1 and 19/20 sig digits
-
- linea.c:: ++jrb
- adjust proto for linead()
-
- makefile.*, mincl:: ++jrb
- add 020 targets for mc68020/030 etc targets.
-
- rename some long filenames as requested:
- ./Changelog ./Changelo
- ./PatchLevel.h ./PatchLev.h
- ./_addsubdf3.s ./_addsubd.s
- ./_addsubsf3.s ./_addsubs.s
- ./_divmodsi3.s ./_divmods.s
- ./_extendsfdf2.s ./_extends.s
- ./_fixunsdfsi.s ./_fixunsd.s
- ./_floatsidf.s ./_floatsi.s
- ./_truncdfsf2.s ./_truncdf.s
- ./_udivmodsi3.s ./_udivmod.s
- ./gmakefile.16 ./gmakefil.16
- ./gmakefile.32 ./gmakefil.32
- ./localtime.c ./localtim.c
- ./setlocale.c ./setlocal.c
-
- Makefile, mincl : ++jrb
- adjust for the renamed files
-
- Makefile:: ++jrb
- added 020 targets and defs
-
- stksiz.c:: ers
- default symbol _stksize defn. if the user provides no def, this
- gets pulled in. neat idea ers.
-
- gemfast.h:: ++jrb
- added TurboC compatibility def for OBJECT (controlled by
- #ifdef __TCC_COMPAT__ ).
-
- access.c chdir.c chmod.c console.c dup.c fflush.c filbuf.c fputc.c
- fread.c fseek.c fungetc.c fwrite.c getbuf.c getcwd.c getlogin.c
- getopt.c getpid.c getpw.c getuid.c gmon.c isatty.c lseek.c malloc.c
- mkdir.c open.c popen.c psignal.c read.c rename.c rmdir.c sbrk.c
- setbuf.c sgtty.c sleep.c stat.c textio.c time.c unlink.c utime.c
- write.c:
- s/unixlib.h/unistd.h/
-
- close.c fhandle.c isatty.c open.c stat.c unlink.c:
- s/N_HANDLES/__NHANDLES/
-
- allover:: ++jrb
- fixed function proto args to pass -Wstrict-prototypes.
-
- assert.h:: ++jrb
- - if !stdc make sure __LINE__ and __FILE__ are def'ed
- - make sure that __LINE__ is printed using %ld not %d
- and cast (long)__LINE__
-
- dirent.h:: ++jrb
- track name change for DIRSIZE/DIRSIZ from mntlib
-
- osbind.h:: ++jrb
- make all the defined structs grow a leading _ (_KBDVEC etc)
- to avoid clashed with user defined types.
-
- siglist.h:: ++jrb
- as in mntlib, move the siglist and signal names to siglist.c
- declare them extern here. (ers, why did you delete signal_names?)
-
- siglist.c:: ++jrb
- new file with defn for sys_siglist and signal_names
-
- mincl:: ++jrb
- add target for siglist.o
-
- stdlib.h:: ++jrb
- add EXIT_FAILURE ifndef as in mntlib
-
- unistd.h::
- ers, why did you make the counts unsigned?? this causes problems
- with the return type, on a successful read you will get <= count or 0 or -1
- but is count is unsigned, the err condition potentially becomes
- undistinguishable.
-
- alphasor.c:: ++jrb
- new file from mntlib, the sorting predicate for scandir().
-
- mincl:: ++jrb
- - add target for alphasor.o
- - make it consistent with mntlib mincl (targets for GNULIB2 and
- rule for .cpp)
-
- lib.h:: ++jrb
- got from mntlib, added console_input_status proto.
-
- chdir.c:: ++jrb
- include lib.h, void cast return value of Dsetdrv as per mntlib
-
- chmod.c:: ++jrb
- merged in change from mntlib that ensures archive bit is not
- cleared.
-
- crt0.c:: ++jrb
- make _stksize extern that is picked up from user or if not
- specified by the user, from stksiz.c (where it is zero).
- Nice idea ers!
-
- fflush.c:: ++jrb
- get rid of unused local c, per mntlib
-
- allover:: ++jrb
- add #include "lib.h" as appro.
-
- ftw.c:: ++jrb
- replaced with one from mntlib (stat should take care of UNIXMODE
- too, no?)
-
- localtim.c:: ++jrb
- replace with one from mntlib
-
- scandir.c:: ++jrb
- new file, from mntlib
-
- mincl:: ++jrb
- add target for scandir.o
-
- stat.c:: ++jrb
- look again-- add in real inode # code (edgar sent me, its
- here somewhere)
-
- system.c:: ++jrb
- replaced with ers/pratt fork()'less code. (ers will re-direction
- in the parents context work just as well?? actually its probably
- ok, since gemdog is so foobar'ed already).
-
-
- support.h, lib.h:: ++jrb
- consolidate the two. needs to be checked.
-
- dirent.h:: ++jrb
- replace NAME_MAX with limits.h, per mntlib
-
- ioctl.h:: ++jrb
- add new MiNT proc ioctls
-
- stdio.h:: ++jrb
- track renaming of vars in __getc__ from mntlib
-
- string.h:: ++jrb
- incorporate apratts super/duper empirical findings
-
- osbind.h:: ++jrb
- added definitions for Bconmap() and Bconctl()
-
- malloc.c:: ++jrb
- test return value of sbrk == -1 for no mem, as the TT can ret
- memory with high bits set, per mntlib
-
- sbrk.c:: ++jrb
- ers why did you increase slush from 64 to 256??
- changes to return -1L when no mem, as per mntlib
-
- spawnve.c:: ++jrb
- copy argv[0] insted of path into env following ARGV=, per mntlib
-
- stat.c:: ++jrb
- - i was resetting the dta in the if part, changed it to
- be consistent with mntlib.
- - deal with root dir of logical drive, per mntlib
-
- times.c:: ++jrb
- ers can we switch back to HZ == 60 and scale as appro. there
- is too much stuff out there that blindly assumes this, without looking at
- param.h.
-
-
- strlen.c:: ++jrb
- use the same pratt hack as in string.h (return ptr diff instead
- of count -- and pray that the gcc code selection never changes half :-)
-
- strftime.c:: ++jrb
- replace with one from mntlib
-
- regexp.c regsup.c regexp.h: ++jrb
- new files from mntlib.
-
- mincl:: ++jrb
- add targets for regexp.o regsup.o
-
- access.c:: ++jrb
- replace with one from mntlib
-
- tmpnam.c:: ++jrb
- changed mask for mktemp from $$XXXXXX to TTXXXXXX. $$ was
- causing too many name problems (especially with shells).
-
- dup.c:: ++jrb
- added upperbound check for handles as per mntlib
-
- fgets.c:: ++jrb
- initialize c to EOF.
-
- findfile.c:: ++jrb
- replaced with one from mntlib
-
- fopen.c:: ++jrb
- ignore close status when freopening as per ansi/mntlib
-
- getenv.c:: ++jrb
- replaced with one from mntlib.
- NOTICE new function putenv()
-
- unistd.h:: ++jrb
- add proto for putenv()
-
- gnulib2:: ++jrb
- bdiv is suspect:: replace with my one after test.
-
- lseek.c:: ++jrb
- put #ifdef __GNUC__ around builtin_alloca
-
- main.c:: ++jrb
- put in MiNT detection.
- NOTICE new var __mint;
- invoke MiNT detect
- or in __default_mode__ for the standard descriptors per mntlib
-
- minimal.h:: ++jrb
- add _exit(), since signal and system call it.
-
- malloc.c:: ++jrb
- ers: i liked the sentenials very much.
- include <unistd.h> for sbrk
- change _sbrk() to sbrk()
-
- popen/pclose: ++jrb
- i dunno about these two.
-
- ers:: i am totally out of sync with read/write and console routines.
- i think i will leave the devices in for now. have to decide what strategy
- would be best for the lib, and yet try to converge towards MiNTs idea
- of these things... let me know if you get any inspirations.
-
-
- setjmo.cpp:: ++jrb
- test for MiNT
-
- scanf.c:: ++jrb
- ignore the following warnings:
- scanf.c: In function _scanf:
- scanf.c:123: warning: argument passing between incompatible pointer types
- scanf.c:124: warning: argument passing between incompatible pointer types
- scanf.c:216: warning: argument passing between incompatible pointer types
- scanf.c:227: warning: argument passing between incompatible pointer types
- scanf.c:364: warning: argument passing between incompatible pointer types
- scanf.c:383: warning: argument passing between incompatible pointer types
-
- main.c:: ++jrb
- at exit, only flush std streams that are not tty's. this is
- important for some shells that have re-directed the streams, and
- are going to un-redir them on exit (ERS: need to incorporate this in
- mntlib too).
-
- bsearch.c:: andreas schwab
- `size_t' is unsigned long and ((size_t)-1) is greater than 0. That
- leads to an endless loop (and index out of range) if the key is less
- than the smallest element in the array. (in deciding dir)
-
- unistd.h:: ++jrb
- add protos for random(), srandom() etc.
-
- qsort.c:: ++jrb
- adjust for non-stdc compiler, add <alloca.h> for sun sparc
- yes, all those casts are actually required for some
- dumb-shit compilers
-
- tmpnam.c:: michal
- use TxXXXXXX as the template, TTXXXXXX is more likely.
- use \ instead of / for shells and other things
- that dont understand unixmode
-
- unistd.h:: ++jrb
- change read/write to conform to posix:
- int read(int, void *, unsigned int nbytes);
- int write(int, const void *, unsigned int nbytes);
-
- max nbytes == 0xffffe (0xffff fffe), return value all F's
- on error, with errno set. the user is responsible for
- handling the sign of the returned value as appro.
- (this really sucks).
-
- read.c, fread.c,..., write.c, fwrite.c...:: ++jrb
- adjust for above. NOTE: in _read()/_write() we dont accept
- counts greater than LONG_MAX. i dont think is an unreasonable
- restriction at all :-)
-
- osbind.h:: andreas schwab
- in the definition for Flopfmt, the return value has the wrong cast.
- the bad sector list is returned in the buffer pointed to by `buf',
- in d0 the usual error code is returned.
-
- in the `trap_...' definitions where the asm statements are splitted,
- (across two asm's -- ed:jrb)
- i have deleted the `volatile' for the parameters which are pushed in
- the first asm statement. this gives slightly better code, and i
- don't think that it causes any harm, because the stack pointer isn't
- changed yet.
-
- dirent.c:: andreas schwab
- function opendir()
- the dirent list should be linked forward, so that `ls +sort none'
- gives the correct order.
-
- i have also slightly improved the closedir function (i like double
- pointers :-)
-
- everywhere:: ++jrb
- convert to conditional macros _PROTO() style for all protos.
-
- open.c, *scanf*.c, *printf*.c:: ++jrb
- convert all these to true <stdarg.h> style for var args
- instead of faking them out. get rid of the #ifdef __SRC__
- kludges everywhere (i think these os only one instance
- left for which there really is'nt a clean workaround).
-
- everywhere:: ++jrb
- sync in with mntlib #9. change all _PROTO to __PROTO and
- _EXTERN yo __EXTERN. Also, use that compiler.h
- ers: note i added cplusplus too.
-
- st-out.h:: ++jrb
- add defn for A_LNAM a gst compat long symbol (activated by ld -G)
-
- atof.c:: ++jrb
- ok my arm got twisted enough: make the return pointer
- char ** even though you pass it a const char *.
- (another shining example of design by committee).
- adjust casts.
-
- scanf.c:: ++jrb
- shut the compiler up with casts
-
- localtim.c:: ++jrb
- make indst take a const pointer as it should.
- adjust casts.
-
- qsort,c:: ++jrb
- adjust a few casts
-
- strftime.c:: michal
- replaced file with code from michal. thanks!
-
- atof.c:: ++jrb
- use HUGE val from math.h
-
- sbrk.c:: ++jrb
- round up size passed to HeapAlloc to the next octet (same min
- alignment as in malloc()). It was possible for the heap
- to become unaligned. Thanks for michal jaegermann for catching
- this.
-
- keycodes.h:: michal
- add scan codes for shifted func keys (i did'nt even know
- they were any). thanks michal.
-
- doprnt.c:: michal
- Characters from formats which are echoed literally
- are not counted.
- Formats 'g' and 'G' do not pay attention that some significant
- digits were possibly produced in an integer part and are ready
- to insert any numbers of 0's before next non-zero will be reached.
- Thanks michal.
-
- limits.h:: andreas
- When char unsigned, define the char limits appropriately.
-
- limits.h, stat.c, dirent.[ch], unx2dos.c, sym*.c: andreas
- your latest updates introduced a bug in unx2dos.c: in limits.h
- NAME_MAX is defined to _POSIX_NAME_MAX, which is 14, but in unx2dos.c
- NAME_MAX is used to dimension the internal arrays for the file name
- conversion. thus if you pass an file name with a length of at least
- 14, some very dangerous things happen. it took me some hours of
- debugging to find it out.
-
- Thanks andreas, i changed all dependencies of NAME_MAX in
- the library to LIB_NAME_MAX, so that for instance the MiNT
- library can define it appro for the library. the def of
- LIB_NAME_MAX is 32, since that is what it was assumed as.
- Anything less will blow up stuff in unx2dos as andreas
- pointed out, and also in dirent.c, symdir.c and stat.c.
-
- RENAME:: frank
- _fixunsd.s -> fxunsd.s
-
- RENAME:: ++jrb
- all over in the pml lib and include files:
- pmluser.h -> math.h
-
- atof.c, strtol.c, strtoul.c:: michal
- If you will look closer at strtod function you will find out that,
- contrary to ANSI specifications, there is no way to tell if a
- string passed to it was "0.0", or a string like "+" or "-" or
- consisting only from a white space. The problem is that it does
- not set *endptr to nptr, even if a conversion was not really performed.
- It will also happily accept something like that "0.0.0.0"
- without stopping at the second dot.
-
- A similar bug affects also strtol and strtoul (and I do not know
- what possibly else).
-
- osbind.h:: frank
- the new TT defs were returning int instead of short
-
- stdio.h:: jrb
- change getc to a # define instead of an inline when !__NO_INLINE__
- this keeps gdb much happier, and also produces better code in
- some situations (but never worse).
-
- unistd.h:: ++jrb
- add proto for system()
-
- all over:: ++jrb
- fix up for -Wall: add casts, include files, add/sub protos etc
-
- strtol.c, strtoul.c:: michal
- arrrgh! the above changes at Patchlevel 66 broke these. Michal fixed
- it, and also extended them for ansi conformance to accept bases
- between 2 and 36 and 0. NOTE: if you built gcc @ patchlevel 66,
- please BUILD IT AGAIN. Due to broken strto*l the code will be wrong.
-
- atof.c:: michal
- removed possibility of an infinite loop
-
- ident.c:: ++jrb
- make it hold a static string identifying the Patchlevel so that ident(1)
- can pick it up
-
- mincl:: ++jrb
- add ident.o target
-
- perror.c: michal
- adjust strings for EDOM and ERANGE to correspond to <errno.h>
-
- perror.c:: ++jrb
- - calculate sys_nerr based on sizeof sys_errlist
- - no need to check for return value of strerr for null
-
- textio.c:: michal
- - a buffer with only CRs would call read() with 0 bytes to read,
- and the resulting zero count (correctly) returned by read() gets
- interpreted as an EOF. Thanks michal!
-
- strtol.c strtoul.c:: michal ++jrb
- fix it up. should be close to ansi requirements, sans some debatable
- cases like where the endptr be for "0xGXXXX".
-
- crt0.c:: ++jrb
- get rid of unused label
-
- printf*, scanf*:: ++jrb
- fix up protos. note we fake the _scanf/_doprnt protos to fit
- the situation.
-
- malloc.c:: ++jrb
- dummy should always be there to avaopi bra with zero offset
-
- textio.c:: michal
- fixup the case causing premature EOF when read returned a good count
- but nbytes became 0 because it was skipping over \r's.
-
- chdir.c, chmod.c, dirent.c, mkdir.c, open.c, rename.c, rmdir.c, spawnve.c,
- stat.c, symdir.c, symlink.c, system.c, unlink.c, utime.c, lib.h:: ++jrb
- use unx2dos() instead of _unx2dos, similarly dos2unx() instead
- of _dos2unx(). that way if the user re-vectors the mapping functions
- the users routines gets called.
-
- unx2dos.c:: ++jrb
- maybe we should be checking bounds on the filenames against
- _LIB_NAME_MAX. i dunno, this is not pascal, soo GIGO :-)
-
- stdio.h:: ++jrb
- use safe def for __fp
-
- ---------------------------------- Patchlevel 68 ---------------------------
-
- read.c:: andreas
- echo chars >= 0x80 as normal characters for users with national
- chars.
-
- sscanf.c, fprintf.c:: andreas
- delete spurious arg decl
-
- device.h:: ++jrb
- define mkdev/major/minor
-
- device.c:: ++jrb
- NEW FILE, this code was previously in unx2dos.c, but it needs
- to be seperate so that people can see it (and use it :-).
-
- mincl:: ++jrb
- add target for device.o
-
- all*.h:: ++jrb
- add in extern "C" {} 's for g++
-
- ---------------------- PatchLevel 69 -----------------------------
-
- bcmp.c, bzero.c, div.c, malloc.c, read.c, sbrk.c, strchrc.c,
- strrchr.c, unlink.c, write.c:: andreas
- equivalence names with .stabs, rather than the old dirty trick
- which could not guarantee that a string constant would not
- be generated by the compiler before the entry point of the
- code that the label was being equvalenced to. Neat idea!
-
-
- gmon.c: andreas
- clear histo buffer (dont depend on a clear bss)
-
- gprof/gprof.c:: andreas
- fix up for long GST symbols (aka gcc -G)
-
- fscanf.c:: ++jrb
- add vscanf(), vfscanf()
-
- sccanf.c:: ++jrb
- add vsscanf()
-
- stdio.h:: ++jrb
- add protos for v*scanf()
-
- setjmp.h:: ++jrb
- dont proto catch/throw for g++
-
- ---------------------- PatchLevel 70 -----------------------------
-
- makefile.??, gmakefil.??:: ++jrb
- i forgot these, organize them better (thanks allan)
-
- ---------------------- PatchLevel 71 -----------------------------
-
- strtol.c, strtoul.c:: michal
- fix up for case "0xGYYY" (0x followed by invalid hex digits)
-
- fflush.c:: ++jrb
- when _IOREAD and lseek fails on a device (_IODEV), ignore it.
-
- signal.c:: ++jrb
- - __check_signal should be an extern (it is declared in console.c
- or xconsole.c when using termcap).
- - make __check_signal counting for either or !SIG_IGN
-
- fcntl.c:: ++jrb
- new file, limited implementation of fcntl() functionality
- fcntl cmds F_DUPFD, F_GETFD, F_SETFD, F_GETFL, F_SETFL
- note: DUPFD has very limited semantics, about all we can do in TOS
- GET/SETFL: get and set the __open_stat flags, unlike unix
- semantics for these calls.
-
- close.c, fcntl.h, spawnve.c:: ++jrb
- add support for close on exec fcntl flag.
-
- mincl:: ++jrb
- add fcntl.o target
-
- write.c:: ++jrb
- add support for O_APPEND flag. (seek to end before each write).
-
- null.c:: ++jrb
- new file, implemntation of /dev/null using plug'n play device
- interface. use install_device() before using device to install
- /dev/null as a legitimate device.
-
- stat.c:: ++jrb
- check for device in fstat, pass full unixname to stat if so.
- stat already handled devices.
-
- mincl:: ++jrb
- add target for null.o
- ---------------------- PatchLevel 72 -----------------------------
-
- symdir.c: andreas
- delete the .dir file if there are no links
- some cleanups in _cache_lookup (yes, it produces some fewer
- bytes of code :-)
-
- unx2dos.c: andreas
- change the dot conversion strategy
- the old code had difficulties with filenames of the form
- asdfgh.tar.Z:
- _adjust("asdfgh.tar.Z") -> "ASDFGH,T.Z", the linked-to name
- becomes "asdfgh.t.z". but when later retrieved, _adjust is
- called with the linked-to name
- _adjust("asdfgh.t.z") -> "ASDFGH.T,Z"
- with the new coding:
- _adjust("asdfgh.t.z") -> "ASDFGH,T.Z"
- there are yet some problems with filenames ending in '.', the
- period will be lost after conversion
-
- crt0.c:: ++jrb
- revert back to testing A0 (instead of SP) after controversy on the net.
- packers will just have to fix themselves.
- in addition to testing A0 check long A0@(36) (parents basepage). for an
- acc this should be NULL.
-
- crt0.c:: frank celler
- before fixing up env if launched from the desktop, be careful that this
- is not really the value of a env variable with a NULL value.
-
- fcntl.h:: ++jrb
- adjust constants to match MiNT.
-
- console.c:: Scott Kolodzieski (uunet!sparc1.stevens-tech.edu!scott )
- new function flush_key_buff(): enables you to stuff the
- currently accumulated (in the system) chars to the console
- buffer. this is important in the situation
- where you do a fork(), and chars accumulate while in the child
- process.
-
- ctype.h:: michal
- make sure isprint/isgraph dont become true for chars > 0x7f
- (they were before). thanks michal.
-
- symdir.c:: scott
- _del_symdir_cache(): routine to flush out symdir cache. please
- note the interaction between symdir cache and unx2dos before
- using this.
-
- crt0.c:: andreas
- the amount of space for the environment and the arguments reported by
- the function is sometimes four bytes too small, so that the first
- malloc() clobbers the NULL pointer at the end of the argument list.
- this is a bad idea especially for programs which rely on this NULL
- pointer (which is completely legal).
-
- fork.c:: andreas
- there is a subtle bug in _fork (fork.c). suppose you are doing
- something like this (which is essentially what gnumake does):
-
- if ((pid = vfork()) == 0)
- {
- /* children side */
- do_something();
- execv(...);
- }
- else
- {
- /* parent side */
- /* ... */
- }
-
- the problem is, if do_something() does too much malloc()'s, more
- memory must be fetched from TOS (via sbrk()) and is inserted into the
- free memory list by malloc(). but later on the parent's side, this
- memory is no more valid, but still will be returned by malloc(). in
- the case of gnumake, it gets overwritten by subsequent fork()'s and
- *bang*. here it is read_symdir (symdir.c) which sometimes wants too
- much memory (it is called when the program to be executed is searched
- through PATH).
- the solution i suggest is to malloc() a big block and free() it again
- so that there is enough memory left to be handled by malloc(), without
- having to sbrk() more until the "child" process does the execv(). i
- have tested this with gnumake running it over night (making TeX fonts)
- and no more bombs had appeared yet :-)
-
- pipe.c:: Scott Kolodzieski (uunet!sparc1.stevens-tech.edu!scott )
- implementation of pipe for TOS. thanks scott!
- everyone, do yourself a favor and check out scotts port of
- bash. its great!
-
- close.c, open.c, fcntl.h:: scott
- chnages to support pipes.
-
- unx2dos.c:: ++jrb
- translate /dev/D\foo correctly. the code was looking
- for only '/' after /dev/D (after the drive char).
-
- memcpy.c:: ++jrb
- stab hack in memmove() at bill shrokas suggestion. the
- memcpy() handled overlap, so its ok.
-
- string.h:: ++jrb
- add proto for memmove()
-
- malloc.c:: realloc() michal
- if space cannot be allocated by realloc, the orig object
- remains unchanged (and a NULL is passed back).
-
-
- ---------------------------- Patchlevel 73 ---------------------------
-
- popen.c:: ++jrb
- use tmpnam() to get temp filename. That way $TEMP || $TMPDIR
- get looked up.
-
- main.c:: ++jrb
- moved clearing of errno to just before calling main(). otherwise
- somehow is was !=0 at the start of main() in some cases.
-
- unlink.c:: scott
- i cant believe this was still lurking in there. Thanks scott!!
- if the file to be unlinked was open, and we put it in the
- atexit chain, we were'nt strduping the filename, as a result
- all filenames in the chain were pointing to the same loc.
- arrgggh! now strdup() the name, and free it in do_deletes. if
- the strdup() fails, link it in the chain with a null filename,
- and in do_deletes() just skip over entries with null
- filenames. we need to do this as we cannot un-atext the entry,
- nor do we want to as they may be others in the chain before
- this one, or successive attempts may succeed.
-
- main.c:: ++jrb
- call the atexit functions after closing all the open files.
- this is essential if the deferred unlinks() etc are going to
- work.
-
- binmode.c:: ers
- new file. as per mntlib pl 13, __default_mode__ is now a
- global that the user may define. if not defined by the user
- it gets picked up from here, with a default value of 0 (text mode)
- the user may now define __default_mode__ = IOBIN; and that
- way stdin etc get opened in binary mode. thanks eric.
-
- fdopen.c fopen.c main.c:: ers
- adjustments for __default_mode__.
-
- mincl:: ++jrb
- add target for binmode.o
-
- localtim.c:: ers
- sync with mintlib, use symbolic constants
-
- main.c,spawnve.c,findfile.c: ers
- when starting up, convert the environment variable PATH to
- POSIX form (i.e. using ':' as a separator); when execing a
- new program, convert back to old form so old programs will
- work correctly. thanks eric.
-
- fread.c:: jeffrey jackson (jgj@ssd.csd.harris.com)
- fread was'nt returning EOF on large reads. thanks jeffrey.
-
- mktemp.c rename.c symlink.c:: ++jrb
- save errno around calls to access()
-
- symlink.c:: jeffrey
- the length returned was wrong because we were doing a strncpy
- before strlen.
-
- main.c:: ++jrb
- for stdin/out/err set open_stat[].filename to the unix device
- so that fstat() works. thanks to jeffrey for discovering this.
-
- pipe.c, close.c:: scott
- minor fixes for pipes. bash-1.10 works real well now.
-
- stat.c: jeff
- handle the case for fstat() when stdin/out etc are re-directed.
- (ie: open_stat[].filename == NULL).
-
- unx2dos.c:: jeff
- overwrite __link_to only once when following links, so that
- lstat() works correctly.
-
- symlink.c:: jeff
- readlink didn't work for symbolic links in root file system if
- the passed name had the slash. This was because the slashed
- was nulled to create the directory name of the file (boundry
- condition type bug).
-
- scanf.c:: ++jrb
- %n was'nt storing the # of chars read in so far, but was storing
- number of conversions done. thnaks for allan pratt for reporting
- this.
-
- scanf.c:: ++jrb
- old one had too many subtle problems. replaced with one from
- gnu libc with a few subtle corrections, and also a bug fix.
- NOTES:
- - interface is different from equivalent gnuC lib function
- it was munged to match our old _scanf().
- - if __NO_FLOAT__ is defined then the floating point stuff
- gets nuked (for iio*.olb) as per our old scanf.c.
-
- It is very important to read and understand the GNU Library General
- Public License. It specifies rights and conditions that are different
- from the GNU copyleft.
-
- atof.c:: ++jrb
- strtod() was leaving the pointer one char too far when input
- had a tailing 'e' (for example after 100ergs, the endptr would
- be pointing to 'r' rather than 'e').
-
- scanf.c:: ++jrb
- had to hack it quite a bit to get out bugs. the regression test
- is great now!
-
- crt0.c:: ++jrb
- More meanings for _stksize (thanks to eric and allan for the feedback)
-
- _stksize meaning
- -4L keep 3/4, free 1/4, malloc from own heap
- -3L keep 2/4 (1/2), free 1/2 malloc from own heap
- -2L keep 1/4 of memory, free 3/4, malloc from own heap
-
- NOTE: all of the following will do malloc from Malloc() first,
- when that fails, malloc() will do further mallocs from
- our own heap. This lets us use the maximum amount of
- memory in traditional ST's as well as newer split address
- STs.
-
- -1L keep all of memory (except MINFREE at top) and do
- mallocs from own heap, with heap grown upwards towards
- stack, and the stack growing down towards heap,
- with a minimum slush between them so that they
- dont meet (only checked while malloc'ing). With
- this model, further spawning is not possible, but it is
- well suited for programs such as gcc-cc1 etc.
- Thanks to Piet van Oostrum & Atze Dijkstra for this idea
-
- 0L keep minimum amount of memory. this is also the
- case when _stksize is undefined by the user.
- 1L keep 1/4 of memory, free 3/4 ( as in Alcyon GEMSTART)
- 2L keep 2/4 (1/2), free rest
- 3L keep 3/4, free 1/4
- other keep that many bytes
- -other keep |other| bytes and malloc from own heap
-
-
- Also note that when _initial_size is specified, malloc happens from own
- heap only.
-
- crt0.c:: ++jrb
- New convention for ACCs: (the old convention is still supported):
-
- If _heapbase is not specified by the user, _stksize bytes will
- be Malloc()'ed from the system, and _heapbase will be set to
- this area, and sp will be set to the top of the allocated
- area. All malloc()'s of course will happen from this local heap.
-
- The old convention for ACCs where the _heapbase and _stksize
- were specified, and sp was set to _heapbase+_stksize will
- continue to work.
-
- malloc.c, sbrk.c:: ++jrb
- implement _split_mem for _stksize >= -1L. get mem from
- Malloc first, after that is exhausted, start carving out of
- own heap (the heap will be in the other address space of the
- split address space). (ie: other to the one the program is
- launched in). The way this is done is that when _stksize >= -1L
- in crt0.c the vars _split_mem and _heapbase are set in crt0.c.
- then whenever we sbrk, we first check _split_mem, which if true
- causes us to Malloc(). Then when Malloc() fails, and if _split_mem
- was on, we turn it off and that causes sbrk() to start allocing from
- heap.
-
- crt0.c:: ++jrb
- in _start1() the local vars and args MUST be in registers because
- we are playing games with SP and the FP. to ensure this use
- __asm("REG") facility of gcc. thanks allan.
-
- isatty.c:: ++jrb
- put in a check so that PRN: always returns false. i believe
- that this will fix the problem of GS and gnuplot,
- where fwrite() to a file opened in binary mode to PRN: was munging
- the bytes on the way to the printer. Unfortunately, i dont
- have a printer attached to my ST to check.
- Tim says its ok now. GS works!
-
- unistd.h, mkdir.c:: andreas schwab
- mkdir takes a second mode argument (currently ignored).
- thanks andreas.
-
- basepage.h:: ers
- make undocumented parts of the BP hard to get at.
-
- compiler.h:: ers
- as per mntlib PL16. note that wchar_t is now an int.
-
- time.h:: ers
- per mntlib pl 16
-
- sys/timeb.h:: ers
- new file
-
- timeoday.c:: ers
- New file.
- New BSD-ish ftime(), gettimeofday() and settimeofday() system calls.
-
- mincl:: ers
- add target for timeoday.
-
- spawnve.c:: ers
- use TOS_ARGS instead of NCARGS
-
- pipe.c:: ers/scott
- Eric beet down the MiNT/PIPE bug, and I must say with two trivial
- changes the dup2/pipe interface works quite well. Under MiNT
- file handles are not automatically shared with children. So
- the dup2 in bash/emacs was failing.
-
- getpass.c, mincl, unistd.h :: ers
- new file from mintlib for getpass(). Add target to mincl. Add
- proto to unistd.h. Note: you need to put the final '\n' yourself,
- after the call to getpass().
-
- getpass.c:: ++jrb
- Null terminate return string (was being passed back with \n)
- If fget retuns a Null pass back Null (per man on the sun).
-
- gmon.c:: ++jrb
- we collectively decided that all xbra's should be chained via
- the next's. make adjustments to unlink_handler.
-
- ---------------------------- Patchlevel 74 ---------------------------
-
- scanf.c:: Michael Ritzert
- - incorrect return value if fewer data items than specified
- could be read: the supplied _scanf always returns -1 in this case.
- Instead, it should return EOF if the error occured before
- the first data item to be read and the number of items
- read with success later on.
- - the %c format passes the character following the one to be read.
-
- fscanf.c:: ++jrb
- #define fungetc to ungetc for pre Ansi sunOS 4.0.*
-
- ctype.[ch]:: andreas
- allow negative characters (also handles 0xff correctly)
-
- fopen/fdopen:: andreas
- set errno to EMFILE if there are no more FILE slots free
- (gawk uses it)
-
- fputc:: andreas
- don't return EOF if c == (signed char)0xff
-
- malloc.c:: andreas
- split memory didn't work
- the memory allocation routines if using the split memory
- model, sbrk can return values which are out of order, due to switching
- from system heap to own heap.
-
- lstat:: andreas
- unx2dos already stored the link flags in __link_flags; no
- need to call unx2dos twice
-
- system:: andreas
- command line argument can be arbitrary long, hope no longer
- than BUFSIZ
-
- unx2dos:: andreas
- the link contents can be a full pathname in symbolic links
-
- write.c:: andreas
- handle chars with high bit set correctly
-
- fcntl.h:: andreas
- GEMDOS returns file handles <= 80 (for TOS 1.4, don't know
- about newer TOS's)
-
- main.c:: andreas
- indices into __open_stat were mixed with file handles.
-
- system.c:: frank
- skip over quotes.
-
- pwd.h, getpw.c:: frank, ++jrb
- adjust types for uid and gid. they should be uid_t and gid_t
- respectively.
-
- pipe.c:: ++jrb
- cleanup: get rid of -Wall warnings.
-
- localtim.c:: ++jrb
- if the time given is weird, return the epoch. this is a questionable
- fix: we used to return NULL, but that seems to cause problems, as things
- that use the pointer returned by localtime() never seem to check for
- the possibility of a NULL. my handy ANSI reference is mum on what to
- do when the time given is weird. this was causing zoo to blow up in
- zoosrc/nixtime.i when trying to archive files with weird timestamps (some
- people seem to have a weird kbd processor that time warps!).
-
- ostruct.h:: Bill Shroka
- NEW file. it contains most of the popular OS (non Aes/Vdi) structures
- Thanks bill: this is a good beginning to this file, it more or
- less corresponds to franks Documentation/varcard.tex. We can add
- on more stuff as needed.
-
- osbind.h:: Bill Shroka
- use <ostruct.h>
-
- pipe.c:: ++jrb
- All fprintf() in here needed to be conditional upon DEBUG. Thanks
- to michal for finding this. his code was unexpectedly pulling in all
- kinds of stuff due to external references tp fprintf() here.
-
- pipe.c, close.c:: ++jrb
- take out direct call to pipeclose() from close to avoid pulling
- in all the pipe stuff into programs that dont use pipes. instead
- go thru a pointer that is initially nulled, and if the program calles
- pipe() is patched in with the address of pipeclose(). this way only the code
- that actually uses pipes will link in the pipe code.
-
- crt0.c:: ++jrb
- cleanup.
-
- float.h: mjr
- cleanup values to better reflect reality.
-
-
- ***** NOTE ***** ***** NOTE ***** ***** NOTE ***** ***** NOTE *****
-
- _addsubd.s _addsubs.s _divdf3.s _divsf3.s _extends.s _fixdfsi.s _fxunsd.s
- _floatsi.s _muldf3.s _mulsf3.s _normdf.s _normsf.s _truncdf.s modf.s:: mjr
-
- NOTE: these .S files replaced with corresponding .CPP files.
-
-
- mincl:: ++jrb
- adjust targets for above
-
- math-68881.h:: ++mjr
- removed any error checking code (use the library versions if
- error checking is required)
-
- frexp:: ++mjr
- y = frexp(0,ip) now corectly returns 0 both in y and *ip
-
- sfp004 - version written but not tested due to lack of hardware
- my sfp004 board died, so only a "plausibility test" could be made.
- most probable sources of bugs:
- the fscale instruction has been inserted to the old function body
- after the dead of the board.
- The test if the 1st arg is 0, too.
-
- doprnt.c:: ++mjr
- NAN and INFINITY conditions are caught by analysing only the most
- significant long word (uniqe).
- this also serves as a workaround to the conversion bug of
- gcc-as
- (DBL_MAX is converted to 0x7ff00000 0x00000002
- instead of 0x7fefffff 0xfffffffe
- ) which sometimes causes doprnt to crash.
-
- _fixdfsi.cpp:
- _fixunsdfsi.cpp:
- optional error checking added.
- All three situations (no fpu, sfp004, TT) supported.
-
- _normsf.cpp:
- _divdf3.cpp:
- _divsf3.cpp:
- returns signed infinity in case of an exception.
- if option ERROR_CHECK is enabled:
- _errno is set to ERANGE.
- The EDOM situation 0/0 is not tested explicitly.
- All three situations (no fpu, sfp004, TT) supported.
-
- _normdf.cpp:
- if option ERROR_CHECK is enabled:
- _errno is set to ERANGE.
- message is printed.
- value of ERANGE corrected to 62 (was 34 = EPATH)
-
- ldexp.cpp:
- value of ERANGE corrected to 62 (was 34 = EPATH)
- optional ERROR_CHECK inserted.
- underflow is no longer considered an error condition to
- stay consistent with pml.
- if ERROR_CHECK is enabled, a message is printed on overflow.
-
- _addsubd.cpp:
- _addsubs.cpp:
- _muldf3.cpp:
- _mulsf3.cpp: ++mjr:
- sfp004 code and software floating point code merged into one file.
-
- ---------------------------- Patchlevel 75 ---------------------------
-
- getopt.c, random.c, ctime.c:: michal
- get rid of dependency on doprnt().
-
- random.c:: ++jrb
- warn about needing an ANSI pre-processor for str concat.
-
- bcopy.s, memcpy.c:: ++jrb
- DELETE these files.
-
- bcopy.s, memcpy.s:: michal
- replace with these. note now memcpy and memmove are NOT
- equivalenced. memmove will correctly handle overlap, while memcpy
- will not.
-
- bcopy.s, memcpy.s:: ++jrb
- make the cnt check unsigned.
-
- string.h:: ++jrb
- adjust protos for bXXXX() functions to size_t for counts.
-
- mincl:: ++jrb
- adjust dependcy for memcpy()
-
- memcpy.s:: ++jrb
- was missing label setup:
-
- osbind.h:: michal
- Add new Waketime() binding for ST Book.
-
- osbind.h:: Warwick@cs.uq.oz.au
- change cast for Kbdvbase() as g++ wont grok void (**)
-
- ctype.[ch]:: ers/++jrb
- change _ctype[] back to pointer so that locales may switch pointers.
- keep andreas's changes for unsigned index into ctype in. that
- way EOF is covered too. (by the 0xff entry).
-
- compiler.h file.h unistd.h assert.h ostruct.h:: ++jrb
- sync up with mntlib pl18 changes for soz etc.
-
- bcmp.c, bzero.c, qsort.c: ers
- Ansification (casting lvalues is a no-no :-).
-
- doprnt.c getcwd.c memccpy.c mkdir.c tmpnam.c fdopen.c
- getenv.c memchr.c sbrk.c ftw.c memcmp.c sleep.c crt0.c
- getbuf.c malloc.c memset.c sprintf.c strdup.c system.c sysvar.c:: ++jrb
- merge in soz portability changes as per mntlib 18
-
- mkdir.c:: ++jrb
- check for existance before attempting to make per mntlib 18
-
- doprnt.c:: ++jrb
- t was not being initialized in one case. do it at the top.
-
- gnulib2.c:: ++jrb
- add support routines for gcc-2.0: note that the lib needs
- to be re-compiled BEFORE you try to compile gcc-2.0,
- otherwise you will end up chasing your tail!
-
- ldexp.cpp: mjr++
- rewrote the sfp code.
-
- doprnt.c: mjr++
- fixed my bug in the treatment of NaNs and Infinities.
-
- mktemp.c:: ++jrb
- make mktemp() more MiNT friendly by using pid when __mint.
-
- ---------------------------- Patchlevel 76 ---------------------------
-
- memcpy.s:: ++jrb
- in the upcopy loop setup for the oddeven case, the count was being
- moved with a movw instead of movl.
-
- ---------------------------- Patchlevel 77 ---------------------------
-
- spawnve.c:: Marcus Nick
- cmlen was'nt being initialized before counting the chars in
- args loop.
-
- osbind.h:: ++jrb
- -- another re-hack needed for gcc-2.0: the optimization that we
- used earlier for traps with more than 4 args, making them volatile
- and using "g" constraints no longer works, because gcc has become
- so smart! we now remove the volatile, and give "r" constraints
- (just like traps with <= 4 args). that way the args are evaled
- before we change the stack under gcc, and at appropriate times
- put into reggies and pushed (or as in most cases, they are evaled
- straight into reggies and pushed -- and in even more common cases
- they are already in reggies, and they are just pushed). not doing
- this with -fomit-frame-pointer was causing the temps (from evaluing
- the args) to be created on the stack, but when we changed sp
- from under gccs feet, the offsets to the temps ended up being wrong.
-
- osbind.c:: ++jrb
- do the same.
-
- fread.c fwrite.c ioctl.c system.c textio.c
- compiler.h ioctl.h osbind.h ostruct.h stdlib.h:: ++jrb
- sync with mntlib pl19 changes -- thanks ers
- osbind.h had incorrect fn# for Xbtimer
- other changes mostly for soz compatibility.
-
- filbuf.c getlogin.c lseek.c read.c:: ++jrb
- fixed up a few warnings.
-
- crt0.c:: ++jrb
- round the temporary stack to a long word boundary.
-
- minimal.h:: michal
- tidy up protos
- (in case you did'nt know <minimal.h> is used to make small executables
- that dont use any stdio etc. it avoids pulling in _main() and all
- the stdio, atexit etc etc related code).
- for instance here is a minimal hello world:
- #include <minimal.h>
- #include <osbind.h>
- main()
- {
- Cconws("Hello World\r\n");
- }
-
- atof.c:: Michael
- merge diff for atof
-
- ---------------------------- Patchlevel 78 ---------------------------
- signal.c, console.c: alexander lehmann
- fix for a bug where console i/o would get stuck when a interrupt
- was caught and it occured when the input buffer was not empty.
-
-
- fread.c, fwrite.c: alexander lehmann
- I rewrote fread and fwrite to do CR/LF conversion when in text mode.
- Additionally I fixed a small bug in eof detection.
-
- ( this pertains to the example when you are fread'ing say 20 bytes
- from a file that contains 18 bytes: in the old coding
- you would first succeeed with a count of 18, and on subsequent
- freads you would get eof. In this coding, you get a count of 18
- and also eof flag:
- Well this was not really a bug, just when eof shows up. My ansiC
- doc is mum on this point) -- ++jrb
-
- ---------------------------- Patchlevel 79 ---------------------------
-
- gnulib2.c:: ++jrb
- add gcc 2.0 support routine __fixunssfsi()
-
- bblink.c:: ++jrb
- new file to support gcc -tcov (-tcov is not working as yet, but
- when it does, we are ready!)
-
- mincl:: ++jrb
- add targets for above
-
- doprnt.c:: michal/++jrb
- had the same problem as osbind for -fomit-frame-pointer, in ICONV
- change constraints for stuff that is pushed before the sp is reset
- from "g" to "r".
- Also, michal optimized ICONV a bit to do the long div only while
- the number > 65535.
-
- signal.h sysvars.h
- div.c doprnt.c gmon.c main.c sbrk.c system.c: Michal
- shut off gcc 2.X warnings.
-
- *************** RENAME **********************************************
-
- rename file _floatsi.cpp to _fltsi.cpp
-
- **************************************************************************
-
-
- ********************** REMOVE ******************************************
- bzero.c, memset.c. memcpy.s
- *************************************************************************
-
- bcopy.s, bzero.cpp:: alexander lehmann
- efficient replacements for bcopy/bzero/memmove/memset/memcpy
-
- bcopy.s:: ++jrb
- minor adjustment.
-
- mincl:: ++jrb
- adjust targets for above
-
- fread.c:: ++jrb
- remove redundant cast in 'data=(char*)data + m;' since data
- is a char * now.
-
-
- _cmpdf2.s _cmpsf2.s _fixsfsi.cpp _fltsisf.cpp gnulib2.c:: andreas
- * gnulib2.c: nothing needed for gcc-2.0 except __fixsfsi and
- __floatsisf
- * _fixsfsi.cpp, _fltsisf.cpp: new files
- * _cmpdf2.s, _cmpsf2.s: new entry points for gcc2
-
- in gnulib2.c i #if 0'ed out the not used portions instead of deleting
- them, just so that we have a handy cross reference around. also note
- that at the bottom there is still one new gcc 2.X support routine
- around. ++jrb
-
- _fixdfsi.cpp:: andreas
- some cleanups
-
- _floatsi.cpp:: andreas
- code for __M68881__ was bogus (is this needed anyways?)
-
- alloca.s:: andreas
- remove some wasted bytes
-
- console.c:: andreas
- (raw_in): allow typeahead (which is only available at GEMDOS level).
-
- doprnt.c:: andreas
- -- remove some misuse of NULL; handle %g correctly.
- -- a version of iconv for -m68020 and also for non __GNUC__
- -- i merged in earlier iconv change, with one diff: when
- using the long div, make d1 come out into 'i' by declaring
- d1 as the reggie for i as andreas had done in his change, rather
- than use a movw d1, %1 as i had it earlier ++jrb
-
- getenv.c putenv.c :: andreas
- * getenv.c (putenv): put it in separate file as it is independent
- of getenv
- * putenv.c: new file
-
- getuid.c unistd.h:: andreas
- * getuid.c: use uid_t and gid_t
- * unistd.h: ditto
- note that sete?[gu]id() has int as parameter type so that it
- matches the old-style definition
-
- mkdir.c:: andreas
- * mkdir.c: stat() on an already unx2dos'd filename is a no-no (and
- also wastefull), use Fattrib() instead
-
- read.c:: andreas
- (_delchar, str_length): handle ^@ (^@ == (int)0 ++jrb) correctly
-
- rmdir.c:: andreas
- rewrite symbolic directory if dir was nonempty
-
- scanf.c :: andreas
- improve handling of character class
-
- stat.c:: andreas
- allow symbolic link to a deleted path
-
- strcoll.c string.h :: andreas
- * strcoll.c: new file, implementation of strcoll and strxfrm that
- doesn't know about locales
- * string.h: add proto for strcoll and strxfrm
-
- strftime.c:: andreas
- echo unknown format char ala printf (otherwise
- buf is uninitialized)
-
- mincl: andreas
- add target for putenv.o
- mincl: add taget for strcoll.o
- adjust gnulib2 targets:
- add targets for _fixsfsi.o, _fltsisf.o
- remove targets for _lshrsi3.o,...,_lesf2.o
-
- compiler.h float.h signal.h stddef.h stdio.h :: andreas
- avoid warning `cast to pointer from integer of different size'
- if -mshort.
-
- This is 'fixed' in gcc 2.1 (actually we had the fix for gcc 2.0 PL 2)
- to not issue this warning for 0 being promoted. but andreas's changes
- are applicable in any case. ++jrb
-
- unx2dos.c:: ++jrb/ers/michal
- change default unixmode (if not user specified) from "/" to "/d"
- this takes care of problems dues to caonicalization of PATH to
- posix form, where D:\foo is mapped internally to "/dev/D/foo. if
- there was no 'd' in the default unixmode, then a casual
- user would be surprised why non-spawning application could'nt
- find stuff in such PATH's (like when using findfile).
-
- ---------------------------- Patchlevel 80 ---------------------------
-
- bcopy.s:: michal
- I looked at this new bcopy from the latest update and decided to check
- if it is faster only theoretically or maybe also in practice. Reason
- beeing that my friend claimed that he tried a similar code on TT and
- after much coding it was actually slower. So I got curious. Well, at
- least on my Mega it is faster. For some cases significantly so.
- Although nearly twice as big as the previous one. Still I found that
- a small change speeds it up BUT in my experiments only for misaligned
- data. In such situations I got up to 10% shorter times for a little
- bit longer data (break-even seems to be around 25 bytes; for
- smaller sizes the modified code is a tad slower but differences in timing
- are truly neglibible). I still wonder why a similar change in a loop
- control for aligned data did not bring any real speed variations.
-
- Another surprise - two tests with branches for the last three
- bytes are actually better than a tight dbra loop. This may look
- quite a bit different on a small instruction cache of 68020.
-
- [ jrb: yes, also it will be interesting to see the difference on
- 68k's with loop-mode (is the 010 the only one??)].
-
- localtim.c:: ++jrb
- rename dst to _dst and make it non-static. timeoday.c uses it.
-
- ctype.c:: ++jrb
- break out toupper(), tolower() into seperate file so that
- users can re-define these and yet pull in ctype stuff, whout
- clashing. (me2 does this).
-
- toxxx.c:: +=jrb
- new file comtaining toupper()/tolower()
-
- mincl:: ++jrb
- add target for toxxx.o
-
- mintbind.h:: ++jrb
- add def for Psigpause() per MiNT 0.95 pl 1
-
- osbind.h: ers
- Bconmap should be XBIOS call 0x2c, *not* 0x2b.
- 0x2b is DMAwrite. There's obviously a potential for serious
- lossage here :-(. (mntlib has the same bug)
-
- doprnt.c:: ers
- -- conditionalize prototypes so Sozobon can compile this
- -- use "+Inf", "-Inf", "NaN" instead of " Infinity ",
- " -Infinity ", and " Not A Number ". I'm told that
- ANSI specifies the shorter strings, and some programs
- rely on these.
-
- *.h and some *.c:: ers/++jrb
- merge mntlib and lib headers. a few .c files needed adjustments
- because of this.
-
- obstack.c/obstack.h:: ++jrb
- sanitize the ones from gcc 2.1 distribution for 16/32 ints and
- add to lib.
-
- mincl:: ++jrb
- add target for obstack.c
-
- bzero/bcmp/bcopy string.h:: ++jrb
- get rid of the silly old lbXXX aliases.
- add the MiNT _bxxx() aliases. should be useful with people like
- the soz 1.33 author who dont distinguish between an int and the size
- of an addressable object (under the guise of efficiency). big sigh!
-
- malloc.c:: ++jrb
- split off realloc and calloc into their own files. put common
- definitions in lib.h so that it may be included in realloc.c
- and calloc.c.
-
- realloc.c/calloc.c:: ++jrb
- new files.
-
- mincl:: ++jrb
- add targets for realloc.o and calloc.o
-
- lib.h:: ++jrb
- add common alloc defs
- cleanup
-
- mincl: ++jrb
- in all the rules, change any explicitly specified source filename
- to $<, so that when VPATH is set the correct thing happens.
-
- ---------------------------- Patchlevel 80.5 ---------------------------
- *:: ers/++jrb
- start of merge of mnt/tos libs. all headers done. lots
- of common files done. lots of minor adjustments all
- over.
-
- console.c:: scott
- We were doning a dev=LOOKUP(handle) in console_write_byte, than again
- in flush_key_buff()
-
- eprintf.c:: ++jrb
- turn say into a routine that calculates the strlen. there was already
- a mistake there.
-
- ---------------------------- Patchlevel 81 ---------------------------
-
- keycode.h, unistd.h:: michal
- change #if defined() to #ifdef
-
- *.h:: ++jrb
- make all decls for alloca consistent
-
- getlogin.c, lseek.c, qsort.c, gnulib2.c, stat.c:: ++jrb
- #include <memory.h> for alloca.
-
- all over:: ers, ++jrb
- change unx2dos/dos2unx to _unx2dos/_dos2unx to avoid posix names
- space corruption in the library. not that there is still a user
- callable unx2dos/dos2unx.
-
- atol.c:: ers
- conditionalize proto
-
- getuid.c:: ers
- let default uid/gid be root/bin
-
- lib.h:: ers
- adjust protos
-
- gnulib2.c:: alexander lehmann
- _fixunssfsi(): I did some investigating and discovered that the
- function did almost always return 0xffffffff. However the function
- doesn't look wrong in any sense. I rewrote the function a bit
- (without really changing anything) and now it works. The problem arises
- from a bug in GCC, that causes certain negative integer constants to
- become positive when cast to float. e.g. -2^31 (LONG_MIN) becomes
- 2^31. This constant was used in the _fixunssfsi function and caused the
- problem.
-
- ---------------------------- Patchlevel 82 ---------------------------
-
- crt0.c:: ++jrb
- add extern references to ident strings for all libraries
- so that the libraries that are linked in have their ident
- strings linked into the executable. (so that ident <executable>
- reveals all Patchlevels of all things linked in).
- For satisfying the references of the libraries that are not linked
- we include dummy symbols in gnu.olb.
-
- il.c ic.c iw.c ig.c ip.c:: ++jrb
- the files containing dummies.
-
- mincl:: ++jrb
- add targets for above.
-
- limits.h: alexander
- I did some further investigating into the LONG_MIN problem and
- I found out why the native gcc on my NeXT did create correct
- code while the ST version didn't. The new gcc installs a limits.h
- file that first includes the system limits.h and the redefines
- some of the constants. LONG_MIN is defined as -LONG_MAX-1 which
- is of course equal to -2<<31, but somehow compiles correctly.
- I changed the ST limits.h defined the constant the same way and I
- added the definition for long long limits from the gcc2.x limits.h.
- This will probably be never used, but it can't hurt, I guess.
-
- stricmp.c strnicmp.c:: alexander
- case-insensative verions of strcmp and strncmp. good for
- TC compatibility.
-
- mincl:: ++jrb
- add targets for above
-
- string.h:: ++jrb
- add protos for above.
-
- binmode.c:: ++jrb
- pull __default_mode__ out into its own module.
-
- defmode.c:: ++jrb
- new file, defining __default_mode__, so that it may be pulled in
- from here when undefined by user. previously it was
- bundled in with binmode, that caused binmode() to be pulled
- in along with it.
-
- mincl:: ++jrb
- add target for above.
-
- fwrite.c:: ++jrb
- when writing out in text mode was returning len+#of CR's in
- buffer, instead of just len of buffer. this showed up with
- ghostscript 2.41. To fix this, we compensate by decrementing
- the counter `l' when we add a CR since `l' is incremented
- at the bottom of the loop. We could have also fixed by checking
- `wrote_cr' before incrementing `l' but we dont because mostly
- this condition would be false and we would have more overhead
- in the common case.
-
- ---------------------------- Patchlevel 83 ---------------------------
-
- ioctl.h, signal.h:: ers
- sync with mntlib changes.
-
- main.c, ctime.c, getuid.c, lib.h, ltoa.c, sprintf.c:: ers
- sync with mntlib changes
-
- frwbin.c:: ++jrb
- new file containing the default __FRW_BIN__ flag. this flag controls
- the default behaviour fread/fwrite:
- when non-zero, fread/fwrite will not do CR processing
- even for text mode files (ie: ignore file mode).
-
- when zero fread/fwrite is process according to file mode
-
- this file is linked in when the user does not specify the variable.
-
- fread.c, fwrite.c:: ++jrb
- incorporate flag.
-
- mincl:: ++jrb
- add target for frwbin.o
-
- compiler.h dirent.h float.h math.h mintbind.h osbind.h
- ostruct.h regexp.h setjmp.h stdarg.h tcfloat.h tcmath.h
- unistd.h varargs.h :: ++jrb/ers
- sync up with mntlib 21_2, mainly changes for Turbo/Pure C
-
- access.c alphasor.c atof.c bcmp.c bsearch.c calloc.c chmod.c doprnt.c
- findfile.c flonum.h fopen.c fseek.c ftw.c getbuf.c getenv.c getlogin.c
- getopt.c getpid.c getpw.c getuid.c gnulib2.c grp.c lib.h localtim.c lseek.c
- ltoa.c malloc.c putenv.c qsort.c random.c realloc.c regexp.c sbrk.c setbuf.c
- setvbuf.c strcat.c strchr.c strftime.c strncat.c strncpy.c strrchr.c strtol.c
- strtoul.c system.c sysvar.c time.c timeoday.c tmpfile.c tmpnam.c utime.c
- getcwd.c isatty.c spawnve.c sleep.c :: ++jrb/ers
- sync up with mntlib 21_2, mainly changes for Turbo/Pure C. nice thing
- about this merge and the earlier soz/lcc merges is that a lot of
- lint cleaning took place as a result.
-
- compiler.h ioctl.h unistd.h signal.h setjmp.h osbind.h mintbind.h
- math.h keycodes.h :: ++jrb/ers
- sync with mntlib 21_3
-
- perror.c:: ++jrb/ers
- sync with mntlib 21_3
-
- scanf.c:: michal
- sscanf (test,"%%Page: %d %d\n", &i1, &i2);
- after "%%" *fc equals 'P' but c was never updated and is still
- equal '%'. Therefore test on line 232 fails and no conversions will
- be performed. [the fix was to get the next char into c after testing
- for '%' - ++jrb]
- thanks michal!
-
- *.s, *.cpp, linea.c crto.c:: howard
- changes to support baserel code generation.
-
- Makefile, mincl:: howard
- New integrated scheme elimiating makefile.16 makefile.32.
- thanks howard!
-
- maikefile.16, makefile.32 :: ++jrb
- delete, no longer needed.
-
- mintbind.h obsind.h obstack.h
- doprnt.c getpass.c linea.c malloc.c obstack.c regexp.c
- sbrk.c stricmp.c strnicmp.c strrchr.c system.c textio.c :: ers/+=jrb
- more cleanups from mntlib pl 22 (casts etc from compilers that
- are more fussy [some really overkill]).
-
- compiler.h mintbind.h:: ers/++jrb
- sync up with mntlib pl 23
-
- difftime.c:: uunet!gnu.ai.mit.edu!entropy
- operands were backwards
-
- doprnt.c:: Michael (ritzert@dfg.dbp.de)
- the g-format does not work correctly. In many circumstances, the output is
- a huge fp-number which is correct in all the 15 significant digits; but the
- length of the mantissa is roughly doubled and filled with garbage. This
- seems to be rounding problem - it occurs more frequently with the 68881,
- but only when the significant rest of the mantissa is a sequence of zeros.
- I observed it with %g %1.6g %1.14g %1.15g.
-
- In my opinion, the g-formatter of cvt() and round() should be rewritten.
- As i don't have the time doing this, i hacked a kludgy fix:
- I save the original no of digits, keep track of the '.', and cutoff the
- buffer before the trailing zeros are stripped. At the same time, i supress
- unreasonable precision, i.e., digs = min( digs, 15 ).
-
- doprnt.c:: Michael/++jrb
- Michael had a problem with ICONV when doprnt.o is linked
- from outside gnu.olb. (i have'nt figured out why this
- would make a difference). Anyways now there is a
- !defined(__NO_INLINE__) around _ICONV so that the C version
- may be picked istead of the inline asm version.
-
- ---------------------------- Patchlevel 84 ---------------------------
-
- doprnt.c:: ++jrb
- Revert out michaels 15 sig digit hack. causing too many problems
- (michal jaegermann reports all kinds of failures from gawk, mawk).
- Revert out DBL_EPSILON hack too..
- Awaitings michals advise on how to fix mjr's problems...
-
- _addsub*:: Olaff (flebbe@tat.physik.uni-tuebingen.de)
- To summarize the changes in both double and float arithmetic:
-
- * The "sticky" byte d2.b is now initalized properly. In the former
- version it was a deterministic random generator.
-
- * The rounding is now computed correctly. The rounding bits reside in
- d3.b.
-
- * Due to cancellation effects one get one extra bit. So a conditional
- jump had to be modified.
-
- One extra bug was included in the single precision arithmetic.
-
- * When the routine discovered that shifting can be done by swapping, it
- shifted the result one additional digit.
-
- _norm*:: Olaff (flebbe@tat.physik.uni-tuebingen.de)
- round up towards even.
-
- bcopy.s, bzero.cpp: andreas
- dont use a4 (for -mbaserel)
-
- linea.h:: ++jrb
- linea2() really needs to declare its output (i know its implicit, but
- unless you put it in the output list, g++ thinks linea2() does
- not output anthing, and complains on its usage).
-
- doprnt.c:: ++jrb
- change condition for unreasonable precision for floats. (it should not
- have been MAXFRACT only as we do zero padding on the right).
-
- regexp.c :: ++jrb
- - include <sys/types.h> instread of <types.h>
- - fix cast in malloc from (unsigned) to (size_t) as it should be.
-
- regexp.c:: ++jrb
- in regmatch(), there was over-enthusuatic conversion of
- int to size_t that caused regular expressions to break.
- please be careful!
-
- in the PLUS/STAR case, `no' needs to be a signed entity, other
- wise the loop is useless.
-
- tregex in the library tests showed this up.
-
- doprnt.c:: ++jrb
- constraint ("g") on the source operand was wrong for divu. source
- has to be data addressable ("dmi" constrain should cover).
-
- ---------------------------- Patchlevel 85 ---------------------------
-
- _divdf3.cpp:: olaf
- prevent the tie rounding case if dividing is not exact.
- paranoia now says: "Division appears to round correctly"
- ** requires _normdf Version 1.6.1 or later
-
- _divmods.s _mulsi3.s _udivmod.s:: ++jrb
- add c68 labels
-
- stdarg.h/varargs.h:: uunet!ms2.maus.de!Bjarne_Pohlers (Bjarne Pohlers)/++jrb
- bjarne reported a problem with an example in the way we were
- pull off args from the stack. he had a fix that looked good. i
- went the gcc-way for the same fix, and used __builtin_next_arg()
- and let the compiler do the right thing. thanks bjarne.!
-
- _addsubd.cpp _addsubs.cpp _divsf3.cpp _normsf.cpp: Olaf
- Problems solved:
- * tie breaking for single precision division
- * prevent core dump for single precision overflow
-
- Only one flaw is left for single precision arithmetic!
-
- I did a rewrite of the add/sub algorithm; now it is about 10-20% faster.
-
- falcon.h: Howard
- bindings for Falcon. Thanks howard.
-
- fread.c:: Andreas
- With the BSD-like pipes in MiNT 0.96/PL14 one cannot assume, EOF is
- reached if read() returns less bytes than requested; it could be a
- short read from a pipe.
-
- There's another `feature' in fread: if a big block is read in text
- mode (!_IOBIN) and the data actually doesn't contain CR's, fread ends
- up copying the data block onto itself.
-
- Synch with mntlib Patchlevel 25: ers
- ioctl.h:
- ANYP means "no parity", not "any speed"
-
- difftime.c: ++entropy@gnu.ai.mit.edu
- The parameters were reversed. Ouch.
- bcmp.c: ++hohmuth@freia.inf.tu-dresden.de
- Change the ODD macro to return a 16 bit value (for
- Pure C)
-
- Following from andreas:
- compiler.h: for gcc2, use the builtin sizes
- gemfast.h: add XCONTROL messages and WF_COLOR defines
- mintbind.h, osbind.h: add the missing definitions
- screen.h: fix definitions for TT
- stdio.h: allow 32 open files as does MiNT
- wait.h (WSTOPPED): use expected value
-
- ---------------------------- Patchlevel 86 ---------------------------
-
- _cmpsf2.s _divsf3.cpp _extends.cpp _mulsf3.cpp
- _negsf2.s _normsf.cpp : olaf
- completed impl of NaN and infinities, even for floats.
- thanks olaf!
-
- atof.c, doprnt.c:: andreas
- I have implemented improved floating point formatting/scanning
- routines for the mc68881. They use the builtin packed decimal
- format, which gives a precision of 17 decimal digits. Formatted and
- rescanned numbers now give identical results, and enquire reports no
- problems anymore.
-
- string.h:: ++jrb
- add parens to shut up gcc.
-
- doprnt.c:: Howard Chu
- The patch to doprnt makes it less vulnerable to crashing when handed
- a large floating point value. (Took me a while to figure out why I was
- crashing, around address 0x30303030! }-) Basically, my math routine
- returned a value like 0x7ff12345 0x60000000 which is larger than INF
- but less than NaN. The check I put in makes it print this range of
- numbers as NaN or -NaN, which is what the Sun C library does.
-
- falcon.h: ++entropy
- Protected against multiple #include's.
-
- string.h: ++entropy
- Added some parens to appease gcc -Wall with gcc 2.3.1.
-
- getuid.c: ++boender@dutiws.twi.tudelft.nl, ++entropy
- Only negative returns from Psetuid() and Psetgid() indicate
- an error. Positive returns indicate success (the PID is
- returned from the OS). Modified getuid() and setgid() accordingly.
-
- a64l.c: ++boender@dutiws.twi.tudelft.nl
- NEW module for conversion between longs and base-64 ASCII strings.
-
- a64l.c: ++entropy
- Use __PROTO, use compiler.h, etc.
-
- support.h: ++entropy
- Added prototypes for a64l(), l64a().
-
- support.h: ++boender@dutiws.twi.tudelft.nl, ++entropy
- Fixed prototype for link(). Removed protoype for isatty()
- (it exists in unistd.h)
-
- limits.h: ++entropy
- Added #define PASS_MAX 8.
-
- getpass.c: ++entropy
- Fixed to use PASS_MAX, fixed off-by-one-error (was writing past end
- of static buf, very bad news). Removed some small kludges.
-
- fflush.c: ++boender@dutiws.twi.tudelft.nl, ++entropy
- Return EOF instead of 0 for files that aren't open.
-
- mincl: ++jrb
- add new target for a64l.o
-
- alloca.s, bcopy.s: ++dsb@cs.duke.edu
- RENAME to alloca.cpp, bcopy.cpp so we can do conditional compilation.
-
- alloca.cpp, bcopy.cpp, bzero.cpp: ++dsb
- Changes for HSC.
-
- mincl:
- Account for the name changes.
-
- compiler.h: ++dsb
- Rearrange the __SOZOBONC__ #defines, fix a typo.
-
- ctime.c, fscanf.c, sscanf.c: ++dsb
- Make compatible with HSC.
-
- compiler.h: ++hohmuth
- define __TCC_GEMLIB__ when used with Pure/Turbo C
-
- aesbind.h, gemfast.h: ++hohmuth
- Make it useable with Pure's GEM library. The special declarations
- in aesbind.h check for __TCC_GEMLIB__. Improved compatibility with
- Turbo's GEM declarations when __TCC_COMPAT__ is defined.
-
- osbind.h: ++hohmuth
- Fix typos, add macros for sloppier type checking when used with
- Pure C.
-
- strupr.c: ++hohmuth
- NEW file: add library call strupr().
-
- string.h: ++hohmuth
- Add declaration of strupr().
-
- mincl, lattice/mincl.lcc, purec/mintlib.prj, sozobon/makefile:
- Add strupr.c.
-
- doprnt.c: ++Ulf_Moeller@hh2.maus.de
- Fix up the ARG macro (which tends to produce wrong results with Pure
- C (which uses a type conversion scheme within ?: that differs from
- GCC)).
-
- regexp.c: ++hohmuth
- Make it Turbo/PureC-proof.
-
- ctime.c: ++hohmuth
-
- falcon.h: ++hyc@hanauma.jpl.nasa.gov
- Remove superfluous equals sign in enum declaration.
-
- fread.c: ++ulf
- Fix return value for text mode.
-
- times.c, times.h: ++ulf
- Use long return value instead of int. This allows larger values
- and agrees with the SysV man page. Returns realtime since epoch
- like sysV (rather than 0,1,-1 like bsd as it previously did)
-
- strlwr/strupr.c:: ++jrb
- bulletproof a little.
-
- a64l.c: ++boender@dutiws.twi.tudelft.nl
- Add to comments a note that prototypes are in support.h.
-
- getpass.c:
- Read password from /dev/tty, instead of stdin, if MiNT is active.
-
- support.h:
- Functions link(), symlink() now take "const char *" instead of
- "char *" parmeters.
-
- access.c: ++boender, ++entropy
- Use real, not effective, user id's for access() checks.
- Fix so access() always returns success on existing files if real
- user id is 0 (root), regardless of file mode.
-
- mintbind.h:
- Add new GEMDOS functions (macros) Dgetcwd() and Salert().
-
- errno.h: ++boender
- Define ENODEV as alias for EUKDEV/EUNDEV.
-
-
- ---------------------------- Patchlevel 87 ---------------------------
-
- support.h:: warwick
- s/new/newname/ otherwise it clashes with the new op of c++
-
- findfile.c:: warwick
- "findfile" doesn't work if the path is "\" (or "/", or "\\'),
- while "E:\foo" works fine. Can it handle trailing slashes?
-
- _addsubd.cpp _addsubs.cpp _divdf3.cpp _divsf3.cpp _extends.cpp
- _fixdfsi.cpp _fixsfsi.cpp _fxunsd.cpp _muldf3.cpp _mulsf3.cpp
- _truncdf.cpp: andreas
- All floating point routines: my 68000 book says that bset #bitno,dn is
- faster than orl #imm,dn. _fixsfsi.cpp: that was also my fault
-
- atof.c:: andreas
-
- ctime.c:: andreas
-
- doprnt.c:: andreas
- Another bug that i introduced in doprnt.c:
- the m68020 version of _ICONV has the arguments of divull reversed
-
- errno.h, strerror:: andreas
- include the new error EPIPE
-
- filbuf.c:: andreas
- clr FILE->cnt on EoF or error.
-
- fopen.c:: andreas
- dont close ttys for MiNT
- get new buffer if file was closed
-
- strftime.c:: andreas
- strftime: typo in case 't', initialize buf if format
- directive is undefined
-
- strtol.c:: andreas
- negating LONG_MIN gives overflow
-
- lib.h, fcntl.h::
- The declaration for __open_stat etc. should be moved to lib.h, where
- the internals of the library belong to.
-
- close.c isatty.c dup.c fcntl.c fhandle.c::
- adjust for above
-
- strupr/lwr:: michal
- use <ctype> tolower/upper instead (in case we ever support 8 bit or
- wide chars, then the EOR trick of course will not work).
-
- main.c:: andreas
- integrate c++ __main() (see changes in gcc 2.3.3 pl 3 (c-decl.c)).
- c++ low level support now moved to this lib from libg++
-
- define std in/out/err symbols for debugging.
-
-
- gmon.c:: andreas
- fixup for gcc > 1
-
- gbl-ctors.h, longlong.h: andreas
- new files in common
-
- libgcc2.c:: andreas
- new file in common
-
- osbind.h, falcon.h, mintbind.h:: andreas
- fix up for __GNUC__ > 1. note how the restriction of # of params
- to __asm() as been lifted, and now we use this feature for
- the larger binding. this is very benefecial as we dont have
- to bend over backwards to get a few binding correct (binding in
- which we would change the SP from under the compilers feet).
-
- realloc.c: andreas
- In realloc, a block can only be split in two if there's enough room
- left for a struct mem_chunk (plus a bit more). [+ roundup ++jrb ]
-
- ---------------------------- Patchlevel 88 ---------------------------
-
- memcmp.c:: andreas
- should compare with unsigned char
-
- strr?chr.c:: andreas
- should not depend on signedness
-
- memccpy.c and memcmp.c:: andreas
- simplified
-
- math-68881.h:: ++jrb
- sync up with gnu version.
-
- math.h:: ++jrb
- change all #ifdef _M68881 to
- #if defined(_M68881) || defined(__M6881__)
- __M68881__ gets automatically defined when gcc -m68881
-
- doprnt.c:: michal
- Still, so far I found two bugs in floating point support. One
- was introduced by Howard when he tried to catch garbled results from
- floating point operations. He caught in the process also negative
- zero and that was part of the reason why Scott got NaN.
-
- [in the part that check for overflows]
-
- _divdf3.cpp:: michal
- The other part was a wrong branch in a division routine which
- was giving a negative zero as a result of a division 0.0/1.0.
-
- _divdf3.cpp, _divsf3.cpp:: michal, olaff
- Fixed sign for retinf, and retzero.
-
- ---------------------------- Patchlevel 89 ---------------------------
-
- michal did a tremendous amount of job tracking down modf and
- fixing the following. thanks michal.
-
- Wed May 26 20:35:34 1993 Michal Jaegermann (michal at smok)
-
- * fixed norm_df and norm_sf not to set errno when processing
- legitimate zero argument
- * fixed wrong error codes and made sure that future changes
- in errno.h will be automatically reflected;
- this involves changes in errbase.h and errno.h
- * removed unused code from _divsf3.cpp
- * corrected bug in setting sign of Inf in _truncdf.cpp
- * made zeros returned from frexp and ldexp consistenly signed
- (they were signed or unsigned, depending on a way they were
- calculated)
- * renamed _cmpdf2.s to _cmpdf2.cpp and _cmpsf2.s to _cmpsf2.cpp
- and added preprocessor directives to split them into separate
- objects while compiling (required change in mincl)
- * replaced 68000 code for modf() with totally new, shorter and
- much faster version
- * added Olaf Flebbe fixes for sign of 0 in multiplication routines
- * general code cleanup all over the place in floating point support
- routines
-
- scanf.c:: ++jrb
- fix bug reported by warwick, when "%Ns", the test for the end of
- the %s loop was incorrect. (left off 1 char too soon).
-
- added some decls for non ansi platforms.
-
- use long double type only when __M68881__ not with soft float.
- out soft float stuff knows nothing about long doubles.
-
- ---------------------------- Patchlevel 90 ---------------------------
-
- _addsubs.cpp, _addsubd.cpp, _div*.cpp, _mul*.cpp:: michal
- following some discussions with Olaf I rewrote addition routines to
- conform - at least here - strictly to IEEE spec. As a matter of fact
- they even decreased in size. :-)
-
- this stuff which I am mailing you right now corrects handling
- various cased when you add or multiply infinities or NaNs.
- To my best knowledge this now follows IEEE specifications, although
- do not quote me on that. :-) There is also some code rearangement
- in division routines to reduce unnecessary branching.
-
- thanks michal!
-
- osbind.h:: Markus Gutschke <srb242@GOEDEL.UNI-MUENSTER.DE>
- stack adjustment amount was wrong. was 6 should be 10. thanks
- markus.
-
- osbind.h:: Robert.Wilhelm@Physik.TU-Muenchen.DE
- wrong stack adjustment for trap_1_wwwll was 16 should have
- been 14. thanks robert.
-
- ---------------------------- Patchlevel 91 ---------------------------
-
- pgrp::
- NEWFILE from mintlib 31
-
- unistd.h:
- Added pause() and sigpause() prototypes. Changed prototype of
- setpgrp() to reflect new SysV-compatible version, and make proto
- apply only if not _POSIX_SOURCE. Changed prototype of getpgrp() to
- reflect return type of pid_t (POSIX). Added setpgid(), setsid(),
- _bsd_setpgrp() and _bsd_getpgrp() protos. To access the BSD
- functions by their usual names, define the macro _BSD_PGRP (and do
- _not_ define _POSIX_SOURCE) before including unistd.h (for example,
- gcc -D_BSD_PGRP -c foo.c).
-
- pgrp.c:
- NEW file, for process group related functions. Renamed setpgrp to
- _bsd_setpgrp(). Created new SysV-compatible setpgrp(). Created
- new BSD-compatible _bsd_getpgrp() (requires MiNT 1.03 or newer).
- Created new POSIX setpgid() and setsid().
-
-
- putpwent.c::
- NEW file from mntlib 31
-
- eprintf.c:: mntlib31
- throw away status buffer. [move buffer onto stk]
-
- findfile.c:: mntlib31
- rehacked by Uwe Ohse, 28.4.93, to support reentrant spawn/popen.
-
- getpw.c:: mntlib31
- sync up with what appears to be a rewrite
-
- grp.c:: mntlib31
- ditto
-
- linea.h, grp.h, ioctl.h, mintbind.h, osbind.h, ostruct.h pwd.h ::
- sync with mntlib 31.
-
- ---------------------------- Patchlevel 92 ---------------------------
-
- main.c:: andreas
- the isatty status should be cleared for dumped programs
-
- float.h:: andreas
- update for GCC 2.4/enquire 4.3; the values for
- LDBL_{EPSILON,MIN,MAX} are computed with bc and verified with enquire.
-
- support.h: ++warwick@cs.uq.oz.au
- Remove two occurances of the string "new" for C++ compatibility.
-
- ctype.h: ++entropy
- More POSIX namespace monkey business.
-
- types.h: ++entropy
- Made lots of stuff #ifndef _POSIX_SOURCE. Added a few POSIX types
- (nlink_t, mode_t).
-
- doprnt.c: ++hohmuth
- Make a long constant explicit for Pure C.
-
- setjmp.h: ++entropy
- Implemented BSD-compatible _setjmp(), _longjmp(), setjmp(), and
- longjmp(). Selectable by defining _BSD_SOURCE. BUG: not compatible
- with __STRICT_ANSI__.
-
- fcntl.h: ++entropy
- Add POSIX-required mask FD_CLOEXEC, to select the close-on-exec
- bit from the flags used in F_GETFD/F_SETFD fcntl().
-
- unistd.h: ++entropy
- Do not define prototype for getopt() if _POSIX_SOURCE is defined.
-
- types.h: ++entropy
- Do not #include <utime.h> if _POSIX_SOURCE is defined.
-
- utime.h: ++entropy
- Added prototype for utime().
-
- unistd.h: ++entropy
- Changed BSD process group selection switch from _BSD_PGRP to
- _BSD_SOURCE.
-
- stat.h: ++nox, ++entropy
- Added S_ISCHR(), S_ISDIR(), S_ISBLK(), S_ISREG(), S_ISFIFO(),
- S_ISMEM(), S_ISLNK(), S_IRWXU, S_IRWXG, S_IRWXO.
- (btw, is S_IMEM a typo of S_IFMEM or was that intentional?)
-
- setjmp.cpp, setjmp.h: ++entropy
- Implemented POSIX sigsetjmp() and setlongjmp().
-
- fopen.c: ++entropy
- Always use O_NOCTTY flag in the call to open().
-
- errno.h, strerror.c: ++entropy
- Add definition of EIO and ENOSPC.
-
- support.h: ++entropy
- Prototype for _isctty() from the MiNT libs.
-
- ctermid.c, stdio.h: ++entropy
- NEW file, POSIX ctermid() function. Prototype and constant L_ctermid
- in stdio.h.
-
- doprnt.c: ++dsb@cs.duke.edu
- HSC choked on a string with implicit newlines (that is,
- "like
- this"
- as GCC is wont to do); I replaced it with explicit "\n"'s and string
- concatenation.
-
- fread.c, fwrite.c: ++dsb
- Some judicious changes from size_t to unsigned long to allow reads
- and writes of >=64K with HSC.
-
- getpw.c: ++dsb
- Minor tweak to work around a foible in HSC.
-
- compiler.h: ++dsb
- Changes for HSC v2.00 and higher.
-
- utime.h: ++dsb
- Changed "#endif _UTIME_H" to "#endif /* _UTIME_H */" to keep HSC
- from complaining.
-
- fcntl.h: ++entropy
- O_NOCTTY definition (for the MiNT libs).
-
- pgrp.c: ++entropy
- Made a more reasonable attempt at setsid(). Kludge a way to
- "disassociate" the controlling tty by forcing fd -1 to /dev/null.
-
- fwrite.c:: michal
- With unbuffered IO fwrite miscounts number of characters written.
-
- a64l.c, calloc.c, chdir.c, chmod.c, eprintf.c, grp.c,lib.h, linea.c,
- psignal.c, putenv.c, raise.c, random.c, regexp.c, regsup.c, strlwr.c,
- strrev.c, strupr.c, strvar.c, textio.c, timeoday.c, *.h:: entropy
- sync up with mntlib pl 33. most changes are cleanups.
- (what does linea2 return?)
-
- --- sync with mntlib34:
- ffs.c: ++frog
- Much faster algorithm.
-
- Makefile, _fixsfsi.cpp, _fltsisf.cpp,
- frexp.cpp, modf.cpp : ++dc4i@br0.hrz.th-darmstadt.de (Stefan Steyer)
- Bug fixes for SFP004 coprocessor code. Add sfp004 targets.
-
- doprnt.c: ++schwab@ls5.informatik.uni-dortmund.de (Andreas Schwab)
- The decimal precision in a printf format does not include the sign or
- hex prefix, e.g. printf ("%-2.5d", -18) should print "-00018".
-
- time.h: ++Frank_Baumgart@pb.maus.de
- Add prototype of select() to time.h (is there a better place?)
-
- ctype.h, grp.h, dirent.h, stddef.h, string.h: ++entropy
- Cleaned up for POSIX.
-
- wait.h, pwd.h: ++entropy
- Cleaned up for POSIX (need more work).
-
- compiler.h, limits.h, stdio.h: ++entropy
- Set stream limits for POSIX.
-
- locale.h: ++entropy
- Define NULL if not already defined (POSIX).
-
- limits.h: ++entropy
- Raise value of _POSIX_NGROUPS_MAX from 0 to arbitrary value of
- 512 now that we have a decent getgroups().
-
- fcntl.h, errno.h: ++entropy
- Add definition of F_SETLKW to fcntl.h. Add ELOCKED to errno.h.
- If Fcntl() gets ELOCKED, return EACCES instead (POSIX).
-
- unistd.h, stat.h, fcntl.h: ++entropy
- Moved many prototypes to the correct headers.
-
- signal.h: ++entropy
- Fix some violations of POSIX namespace.
-
- -- end sync
-
- findfile.c:: michal
- try to accomodate tos style paths
- PATH=e:\bin,c:\bin,...
-
- unistd.h:: ++jrb
- take out setlinebuf proto, it does'nt really belong here.
-
- ---------------------------- Patchlevel 93 ---------------------------
-
- falcon.h:: howard
- corrections from howard
-
- math-68881.h:: ++jrb
- -- Put extern "C" around file when __cplusplus
- -- Make hypot use internal version of sqrt (because signature
- clash in libg++:xfix )
- -- Define internal version (_sqrt) of sqrt.
-
- osbind.h: Robert.Wilhelm@Physik.TU-Muenchen.DE
- chand addw #n,sp to lea n(s),sp which is 4 cycles shorter
-
- dirent.c:: Christoph Koerner (christof@wowbagger.pc-labor.uni-bremen.de)
- sync up dirent.c with changes in dirent.h (DIRENTSIZ -> __DIRENTSIZ)
-
- fprintf.c:: ++jrb
- break out vfprintf, printf and vprintf into their own .o's. that
- way the user can replace any of them.
-
- printf.c, vfprintf.c, vprintf.c:: ++jrb
- NEW files
-
- mincl:: ++jrb
- add targets for above
-
- gnulib2.c:: Steven Ourada (sourada@iastate.edu)
- #define WORD_BIG_ENDIAN for long long.
-
- sync with mntlib35:
-
- doprnt.c: ++Bjarne_Pohlers@ms2.maus.de
- Add support for printing/scanning long longs.
-
- div.c: ++pvt1-117
- Add div functions for compilers other than GCC.
-
- bsearch.c: ++dsb
- Fix bug reported by Thorsten Roskowetz: the order arguments to
- bsearch()'s comparison function was reversed.
-
- ioctl.h: ++Jan-Hinrich_Fessel@un.maus.ruhr.de (Jan-Hinrich Fessel)
- Make it possible to include both ioctl.h and filesys.h.
-
- pgrp.c: ++schwab
- Correctly check the MiNT version in _bsd_getpgrp().
-
- doprnt.c: ++pvt1-117
- Changes to keep Lattice C from generating annoying warnings.
-
- math.h, process.h, support.h, unistd.h, findfile.c, textio.c: ++schwab
- Add 'const' to declarations where appropriate.
-
- malloc.c: ++schwab
- Make malloc() round all memory requests to the page size to be able
- to use all the available memory.
-
- setjmp.cpp, setjmp.h: ++schwab
- Some cleanup; one element of jmp_buf[] can be saved by using the
- fact that signal 0 cannot be masked; why was the type char*[] insead
- of long[]?
-
- fopen.c: ++schwab
- Make fopen() use 0666 as the default file mask (use umask() if you
- want something else); make mkdir() respect the umask setting.
-
- utime.c: ++shenson@nyx.cs.du.edu
- Pass through a NULL tset argument unchanged to the filesystem
- so that it can determine permissions correctly.
-
- falcon.h: ++hyc@hanauma.Jpl.Nasa.Gov, ++Markus_Kilbinger@ac.maus.de
- Change several erroneous macros to correctly cast return to short.
-
- errno.h: ++Ole_Arndt
- Add errors ENOTDIR and ELOOP.
-
- signal.h: ++Ole_Arndt@f.maus.de (Ole Arndt)
- Fix definition of _SIGSET_MAX_INDEX to correct several bugs
- in the POSIX signal mask functions.
-
- stdio.h:
- Add vsscanf() and _getbuf() protos (yech).
-
- dirent.h:
- Add alphasort() proto (excluded by _POSIX_SOURCE).
-
- utmp.h:
- Rename write_utmp() to _write_utmp(). Rename write_wtmp() to
- _write_wtmp(). Add protos (and other cleanups) to utmp.h.
-
- atof.c, fdopen.c, fputs.c:
- Move 'register' to beginning of declarations (shuts up gcc -Wall).
-
- fwrite.c: ++michal
- With unbuffered IO fwrite miscounts number of characters written.
-
- findfile.c: ++michal
- Try to accomodate tos style paths PATH=e:\bin,c:\bin,...
-
- unistd.h: ++jrb
- Take out setlinebuf, doesn't really belong here.
-
- ffs.c: ++NTOMCZAK@vm.ucs.UAlberta.CA (Michal Jaegermann)
- An even faster algorithm. Yow! Are we optimized yet?
-
- support.h:
- Added _exit() and gethostname() protos. Removed write_utmp() and
- write_wtmp() protos.
-
- lib.h, crtinit.c:
- Moved prototypes from crtinit.c to lib.h, and added more to lib.h.
-
- abort.c, lib.h:
- Make abort() close file handles in exactly the same manner
- as exit().
-
- signal.h: ++nox@jelal.north.de, ++Oskar, ++entropy
- Fix type of sa_mask in struct sigaction (sigset_t, not long).
-
- falcon.h: ++Markus_Kilbinger@ac.maus.de, ++entropy
- Add missing traps.
-
- unistd.h, support.h:
- Cleaned unistd.h for easier reading. Moved back the link(),
- symlink(), and readlink() protos from support.h (sorry if I seem
- really indecisive on where some of these protos belong).
-
- doprnt.c, open.c, putenv.c, utime.c:
- Include appropriate headers for protos (and fixed mknod() proto).
-
- sys/statfs.h:
- Add statfs() proto.
-
- sys/errno.h, sys/ioctl.h, sys/resource.h, sys/signal.h, sys/wait.h:
- Fix multiple-include protection to hopefully prevent possible
- infinite include loops (see Bugs file).
-
- getpw.c, pwd.h: ++Jan-Hinrich_Fessel@un.maus.de (Oskar)
- Use uid_t (_UID_T) for getpwuid() instead of int (POSIX).
-
- === end of merge
-
- symlink.c, spawnve.c, spawnvp.c, exec.c: ++jrb
- adjust args to meet new protos in process.h, unistd.h
-
- getpage.c:: ++jrb
- NEW file. defines getpagesize() (for use with malloc.c etc)
-
- mincl:: ++jrb
- add proto for above
-
- == merge with mintlib 36
- _addsubs.cpp: ++nox
- Correct an inverted branch.
- utime.c: ++schwab
- utime(NULL) uses time() to convert the current time to Unix format
- and immediately converts it back to GEMDOS format. Instead it should
- use the GEMDOS format directly.
- stime() must be changed because Tset{date,time} can now return a
- real error number. This depends on Tset{date,time} returning -1 if
- args are bad, which is true for all TOS versions, i think.
- falcon.h: ++Markus_Kilbinger@ac.maus.de
- Add two omitted backslashes to fix new trap definitions.
- chmod.c: ++schwab@ls5.informatik.uni-dortmund.de
- chmod() unnecessarily calls stat() to check if the file is a
- directory; this information is already available through Fattrib().
- nlist.c, nlist.h: ++shenson@nyx.cs.du.edu
- NEW files nlist.c, nlist.h. A version of nlist() for mntlib/toslib.
- Works OK with my binary config program but your milage may vary.
- wcmb.c, stdlib.h: ++pvt1-117@nada.kth.se
- NEW file wcmb.c for ANSI wide char functions.
- ctype.h: ++dsb@cs.duke.edu
- The toint() macro in ctype.h was translating hex digits wrong.
-
- == end merge
-
- mincl:: ++jrb
- add tagets for nlist and wcmb
-
- == merge with mntlib 37
-
- bzero.cpp, mincl: ++entropy
- Break bzero and memset into separate .o's (reduce drag).
-
- string.h, strcmp.c: ++pvt1-117
- Allow use of builtin string functions.
-
- file.h: ++entropy
- Add FREAD and FWRITE macros for TIOCFLUSH flushing modes (not yet
- implemented in MiNT).
-
- unistd.h: ++entropy
- Add tcgetpgrp() and tcsetpgrp() protos.
-
- ioctl.h: ++entropy
- Changes to account for definitions in common with termios.h,
- also add _RTSCTS flag definition.
-
- termios.h: ++entropy
- NEW files, partially implementing the POSIX termios functions (in
- the MiNT library).
-
- wait.h: ++entropy
- Add WSTOPSIG() macro (POSIX).
-
- utime.c: ++entropy
- Add a kludge so that we pretend the utime() worked for directories.
-
- stat.h: ++entropy
- Mode argument is now mode_t instead of unsigned (POSIX).
-
- mkfifo.c, stat.h: ++entropy
- NEW file providing a fake mkfifo(), and a prototype for it.
-
- resource.h: ++entropy
- Add BSD-compatible struct rusage members with 0 values for
- minimal compatibility.
-
- errno.h: ++entropy
- Added EOPNOTSUPP as (temporary) alias for EINVAL.
- Added ECHILD as alias for ENOENT (POSIX).
-
- doprnt.c, fprintf.c, printf.c, sprintf.c,
- vfprintf.c, vfprintf.c, lib.h: ++schwab
- Change the interface of _doprnt to also pass a putchar function
- similar to _scanf. This allows use of sprintf in a program which
- doesn't use stdio and it simplifies the implementation of sprintf a
- bit.
-
- lseek.c: ++schwab@ls5.informatik.uni-dortmund.de
- Make lseek() and tell() always return -1 on errors. Make lseek()
- work better with unseekable devices. Don't modify errno
- when no error has occurred. General cleanup.
-
- nlist.c: ++pvt1-117
- Add some typecasts to keep Lattice happy.
-
- mintbind.h: ++pvt1-117@nada.kth.se
- Add some casts in the Lattice C inlines.
-
- frexp.cpp: ++Cristof_Stadler@s2.maus.de
- Bug fix: add a missing @.
-
- ctime.c, doprnt.c, findfile.c, getpass.c,
-
- localtim.c, strftime.c, strncat.c: ++pvt1-117@nada.kth.se
- Removed some dead assignments and increments.
-
- stdlib.h: ++entropy
- Added NULL (POSIX).
-
- == end merge
-
- mincl:: ++jrb
- add new rules for bzero/memset
- new target for (dummy) mkfifo
-
- == merge with mntlib 38
-
- compiler.h: ++pvt1-117
- Make LCC do the right thing in limits.h.
-
- termios.h: ++entropy
- Add VLNEXT and VWERASE control chars.
-
- types.h: ++roemer@hera.rbi.informatik.uni-frankfurt.de.uni-frankfurt.de
- Add fd_set type and related macros.
-
- falcon.h: ++Markus_Kilbinger@ac.maus.de
- Change return types of VsetMask() and Dsp_Reserve() from
- void to short.
-
- _mulsi3.s, _umulsi3.s: ++schwab
- .lmul and .ulmul aren't equivalent.
-
- wait.h: ++schwab@ls5.informatik.uni-dortmund.de
- Make the wait prototype indirection more robust. Also fix the
- definition of WIFSIGNALED().
-
- falcon.h: ++pvt1-117
- Inline traps for Lattice.
-
- wcmb.c: ++pvt1-117
- Use _wnull from wnull.c instead of a local variable.
-
- wcscat.c, wcscmp.c, wcscpy.c, wcslen.c, wnull.c: ++pvt1-117
- NEW files for ISO wide char support.
-
- stdlib.h: ++pvt1-117@nada.kth.se
- Add prototypes for new ISO widechar functions.
- == end merge
-
- mincl:: ++jrb
- add targets for wcscat.o, wcscmp.o, wcscpy.o, wcslen.o, wnull.o
-
- abort.c:: ++jrb
- rid of redundant fclose_all_files(), exit() should do all that.
-
- limits.h:: ++jrb at suggestion of michal
- make groups limit 0 for non-MiNT
-
- ---------------------------- Patchlevel 94 ---------------------------
- === synch with mntlib39
-
- ***** include/errno.h
- ----------------------------
- revision 38.2
- date: 1993/10/21 16:21:30; author: entropy; state: Exp; lines: +1 -0
- Add ENOTEMPTY as alias for EEXIST (POSIX).
- =============================================================================
- ***** include/limits.h
- ----------------------------
- revision 38.3
- date: 1993/10/23 18:44:56; author: entropy; state: Exp; lines: +17 -18
- Raised some arbitrary limits (or changed to actual limit, as in the case
- of _POSIX_OPEN_MAX). Rearranged things a bit for consistency.
- ----------------------------
- revision 38.2
- date: 1993/10/23 18:28:52; author: entropy; state: Exp; lines: +4 -0
- Set _POSIX_NGROUPS_MAX to 0 when not __MINT__.
- Thanks to ntomczak@vm.ucs.ualberta.ca for the bug report.
- =============================================================================
- ***** include/time.h
- ----------------------------
- revision 38.2
- date: 1993/10/25 10:00:30; author: entropy; state: Exp; lines: +7 -2
- Update select() prototype to use fd_set * for arguments, and
- make some stuff !_POSIX_SOURCE.
- =============================================================================
- ***** include/types.h
- ----------------------------
- revision 38.2
- date: 1993/10/25 09:59:28; author: entropy; state: Exp; lines: +4 -1
- Allow fd_set definition to be gotten from time.h too.
- =============================================================================
- ***** include/wait.h
- ----------------------------
- revision 38.2
- date: 1993/10/24 18:47:48; author: nox; state: Exp; lines: +1 -1
- Some older versions of GCC trip over the new wait macros...so
- it's better not to use them for now.
- =============================================================================
-
- == end sync
-
- read.c:: michal
- replace the echochar()/delchar() macros with safer ones, and
- ones that dont solicit warnings from the compiler.
-
- mincl:: michal
- build bzero/memset together when building bzero.o. doing
- them seperately saves only 12 bytes, but causes jump
- to become long (again not that much of a big deal, as
- those jumps happen once)
-
- osbind.h: ++jrb
- relax the constraints on the inputs of trap_14_wwwwwww (only
- Rsconf maps to this) to "g" from "r", as these many "r" 's
- give gcc 2.>3.X heartaches (understandably). note this is ok
- since these args will never be expressions, and we never
- have to constrain hard enough to force eval before we change
- sp from underneath gcc.
-
- qsort.c: ++jrb
- adjust order of inclusion of compiler.h so that INLINE may be
- conditionally overriden even when __GNUC__
-
- == sync with mntlib 40
-
- ***** abort.c
- ----------------------------
- revision 39.2
- date: 1993/10/28 17:54:14; author: entropy; state: Exp; lines: +20 -2
- Fix for the TOS lib, and also remove a POSIX violation.
- =============================================================================
- ***** utime.c
- ----------------------------
- revision 39.2
- date: 1993/10/27 15:01:02; author: entropy; state: Exp; lines: +16 -1
- Implement the Dcntl() versionof FUTIME in utime(). Comment out the
- kludge for directories in the Fcntl() version.
-
- ==end sync
-
- mincl: ++jrb
- undo the above change for memset, keep them seperate as there
- are util there that want one without the other. what the heck, its
- only about a dozen bytes.
-
- ==sync with mntlib 41
- ***** nlist.c
- ----------------------------
- revision 40.2
- date: 1993/10/31 09:24:14; author: hohmuth; state: Exp; lines: +3 -3
- add a few typecasts for __MSHORT__
- =============================================================================
- ***** strerror.c
- ----------------------------
- revision 40.2
- date: 1993/10/31 11:33:36; author: entropy; state: Exp; lines: +59 -1
- Add support for the socket lib.
- =============================================================================
- ***** utime.c
- ----------------------------
- revision 40.2
- date: 1993/10/31 09:25:04; author: hohmuth; state: Exp; lines: +1 -1
- make assignments used as truth values clearer, to avoid
- spurious warnings
- =============================================================================
- ***** wcmb.c
- ----------------------------
- revision 40.2
- date: 1993/10/31 09:25:16; author: hohmuth; state: Exp; lines: +2 -2
- make assignments used as truth values clearer, to avoid
- spurious warnings
- =============================================================================
- ***** wcscat.c
- ----------------------------
- revision 40.2
- date: 1993/10/31 09:25:24; author: hohmuth; state: Exp; lines: +2 -2
- make assignments used as truth values clearer, to avoid
- spurious warnings
- =============================================================================
- ***** include/PatchLev.h
- ----------------------------
- revision 40.2
- date: 1993/10/30 10:30:02; author: entropy; state: Exp; lines: +1 -1
- -
- =============================================================================
- ***** include/errno.h
- ----------------------------
- revision 40.2
- date: 1993/10/31 11:03:32; author: entropy; state: Exp; lines: +40 -1
- Add support for the socket library.
- =============================================================================
- ***** include/osbind.h
- ----------------------------
- revision 40.3
- date: 1993/10/31 09:23:14; author: hohmuth; state: Exp; lines: +3 -3
- fix prototypes for Pure C: gemdos(), bios(), xbios()
- =============================================================================
-
- == end sync
-
- math.h:: ++jrb
- allow define NO_INLINE_MATH to override _M68881_. Also, check
- for __GNUC_INLINE__ as a pre-requisite to inlining (so the user
- may override globally with __NO_INLINE__.
-
- crt0.c:: ++jrb
- put a section change directive back to .data at the end of the asm()
- block. in gcc 2.5.X the compiler does not reset the block type
- by emitting an appropriate .directive after a asm(). this was causing
- problems with -mbaserel (reloc of acc_argv was always out of range).
-
- strerror.c:: ++jrb
- make sys_errlist[] a char *const like _sock_errlist[].
-
- ---------------------------- Patchlevel 95 ---------------------------
-
- bzero.cpp: michal
- when Lmemset is defined and not Lbzero, the jump at the bottom
- of the memset setup reduces to a zero offset jump. put a
- #ifdef Lbzero (which amounts to really #ifdef Lmemset && Lbzero)
- around the `jra do_set'.
-
- ---------------------------- Patchlevel 96 ---------------------------
-
- ==sync with mntlib42
- ***** abs.c
- ----------------------------
- revision 41.2
- date: 1993/11/24 20:23:16; author: pvt1-117; state: Exp; lines: +7 -0
- Inline abs() and labs() for LCC.
- =============================================================================
- ***** bblink.c
- ----------------------------
- revision 41.3
- date: 1994/01/13 08:03:50; author: schwab; state: Exp; lines: +29 -26
- Fixed version of update for GCC 2.5
- ----------------------------
- revision 41.2
- date: 1993/11/30 18:51:36; author: schwab; state: Exp; lines: +139 -2
- Updated for GCC 2.5
- =============================================================================
- ***** buffindf.c
- ----------------------------
- revision 41.2
- date: 1994/01/09 09:33:20; author: schwab; state: Exp;
- NEW file.
- The library uses the names findfile and buffindfile which are in the
- user's namespace. findfile is not really used and should be move into
- a separate file, and buffindfile should be renamed to _buffindfile.
- I have renamed findfile.c to buffindf.c and moved the function
- findfile into a new findfile.c, and changed all callers.
- =============================================================================
- ***** fdopen.c
- ----------------------------
- revision 41.3
- date: 1994/01/13 09:37:36; author: entropy; state: Exp; lines: +2 -0
- *** empty log message ***
- ----------------------------
- revision 41.2
- date: 1993/11/24 20:12:04; author: nox; state: Exp; lines: +1 -1
- Use binary mode on tty's (under MiNT) to avoid extra ^M's.
- =============================================================================
- ***** findfile.c
- ----------------------------
- revision 41.2
- date: 1994/01/09 09:29:32; author: schwab; state: Exp; lines: +2 -126
- The library uses the names findfile and buffindfile which are in the
- user's namespace. findfile is not really used and should be moved into
- a separate file, and buffindfile should be renamed to _buffindfile.
- I have renamed findfile.c to buffindf.c and moved the function
- findfile into the new findfile.c, and changed all callers.
- =============================================================================
- ***** fopen.c
- ----------------------------
- revision 41.4
- date: 1994/01/09 11:12:06; author: nox; state: Exp; lines: +2 -2
- *** empty log message ***
- ----------------------------
- revision 41.3
- date: 1994/01/09 11:06:16; author: nox; state: Exp; lines: +2 -0
- In _fopen() we seek to the end when file mode "a" is used (the kernel
- won't do this until the first write.)
- ----------------------------
- revision 41.2
- date: 1993/11/24 20:12:34; author: nox; state: Exp; lines: +1 -1
- Use binary mode on tty's (under MiNT) to avoid extra ^M's.
- =============================================================================
- ***** getpw.c
- ----------------------------
- revision 41.2
- date: 1993/11/30 20:40:50; author: nox; state: Exp; lines: +4 -2
- Convert backslashes in the home directory in the passwd file, for backwards
- compatibility.
- =============================================================================
- ***** lib.h
- ----------------------------
- revision 41.2
- date: 1993/11/30 18:51:48; author: schwab; state: Exp; lines: +1 -1
- Use new way to declare a function that doesn't return, since
- the old way wasn't ANSI conforming.
- =============================================================================
- ***** libgcc2.c
- ----------------------------
- revision 41.2
- date: 1993/11/30 18:51:58; author: schwab; state: Exp; lines: +35 -62
- New entry points: L_builtin_new, L_caps_New and L_builtin_del are replaced
- by L_op_new, L_new_handler and L_op_delete.
- =============================================================================
- ***** longlong.h
- ----------------------------
- revision 41.2
- date: 1993/11/30 18:52:22; author: schwab; state: Exp; lines: +25 -24
- Updated for GCC 2.5
- =============================================================================
- ***** include/assert.h
- ----------------------------
- revision 41.3
- date: 1994/01/09 09:02:56; author: lux; state: Exp; lines: +4 -13
- Make assert() macro more ANSI compliant by replacing the broken assert()
- macro with what was previously given as assertval(), and remove
- the assertval() macro.
- ----------------------------
- revision 41.2
- date: 1993/11/30 18:50:46; author: schwab; state: Exp; lines: +1 -1
- Use new way to declare a function that doesn't return, since
- the old way wasn't ANSI conforming.
- =============================================================================
- ***** include/compiler.h
- ----------------------------
- revision 41.2
- date: 1993/11/30 18:50:50; author: schwab; state: Exp; lines: +10 -0
- Use new way to declare a function that doesn't return, since
- the old way wasn't ANSI conforming.
- =============================================================================
- ***** include/ioctl.h
- ----------------------------
- revision 41.2
- date: 1993/11/24 21:09:20; author: schwab; state: Exp; lines: +1 -0
- Add definition of B134.
- =============================================================================
- ***** include/math-68881.h
- ----------------------------
- revision 41.2
- date: 1993/11/30 18:50:58; author: schwab; state: Exp; lines: +112 -48
- Give inline functions const attribute instead of declaring as const.
- Fix a bug in atan2 where the function from libpml gives a different result
- on the arguments (0, -1).
- =============================================================================
- ***** include/minimal.h
- ----------------------------
- revision 41.2
- date: 1993/11/30 18:51:10; author: schwab; state: Exp; lines: +4 -3
- Use new way to declare a function that doesn't return, since
- the old way wasn't ANSI conforming.
- =============================================================================
- ***** include/mintbind.h
- ----------------------------
- revision 41.3
- date: 1994/01/09 10:01:00; author: pvt1-117; state: Exp; lines: +1 -1
- Some changes for Lattice C.
- ----------------------------
- revision 41.2
- date: 1993/11/24 20:50:10; author: hohmuth; state: Exp; lines: +1 -1
- Fix return type of Pwaitpid() for Pure C.
- =============================================================================
- ***** include/osbind.h
- ----------------------------
- revision 41.2
- date: 1994/01/09 10:01:28; author: pvt1-117; state: Exp; lines: +3 -3
- Some changes for Lattice C.
- =============================================================================
- ***** include/stdlib.h
- ----------------------------
- revision 41.3
- date: 1993/11/30 18:51:16; author: schwab; state: Exp; lines: +3 -3
- Use new way to declare a function that doesn't return, since
- the old way wasn't ANSI conforming.
- ----------------------------
- revision 41.2
- date: 1993/11/24 20:20:46; author: pvt1-117; state: Exp; lines: +10 -0
- Inline abs() and labs() for LCC.
- =============================================================================
- ***** include/support.h
- ----------------------------
- revision 41.3
- date: 1994/01/09 09:28:44; author: schwab; state: Exp; lines: +1 -1
- Rename buffindfile() to _buffindfile().
- ----------------------------
- revision 41.2
- date: 1993/11/30 18:51:22; author: schwab; state: Exp; lines: +2 -2
- Use new way to declare a function that doesn't return, since
- the old way wasn't ANSI conforming.
- =============================================================================
- ***** include/termios.h
- ----------------------------
- revision 41.2
- date: 1993/11/24 21:10:38; author: schwab; state: Exp; lines: +1 -0
- Add definition of B134.
- =============================================================================
- ***** include/unistd.h
- ----------------------------
- revision 41.2
- date: 1993/11/30 18:51:28; author: schwab; state: Exp; lines: +1 -1
- Use new way to declare a function that doesn't return, since
- the old way wasn't ANSI conforming.
- =============================================================================
-
- ==end sync
-
- mincl: ++jrb
- adjust for above
- -- add target for buffindf.o
- -- adjust names for op_new etc
-
- ---------------------------- Patchlevel 97 ---------------------------
-
- == sync with mntlib 43
- ***** libgcc2.c
- ----------------------------
- revision 42.3
- date: 1994/02/10 11:38:42; author: entropy; state: Exp; lines: +1 -1
- Only use XFmode extended real floating point if XFLOAT_ENABLE is defined.
- ----------------------------
- revision 42.2
- date: 1994/01/28 16:30:08; author: schwab; state: Exp; lines: +1 -1
- Don't try to use extended float mode (XFmode) with gcc before version 2.4.
- Actually, this will also exclude gcc 2.4, since __GNUC_MINOR__ was
- introduced just with gcc 2.5.
- =============================================================================
- ***** longlong.h
- ----------------------------
- revision 42.2
- date: 1994/01/28 16:30:30; author: schwab; state: Exp; lines: +24 -25
- Revert the last change, we don't need a register prefix.
- =============================================================================
- ***** include/assert.h
- ----------------------------
- revision 42.2
- date: 1994/02/12 00:01:04; author: entropy; state: Exp; lines: +14 -14
- Add back old statement-based assert macro, but now called __assert().
- =============================================================================
- ***** include/osbind.h
- ----------------------------
- revision 42.2
- date: 1994/02/10 08:05:26; author: entropy; state: Exp; lines: +2 -2
- Relax constraints from "r" to "g" on trap_14_wllwwwwwlw (used
- by Flopfmt()).
- =============================================================================
-
- ==end sync
-
- ==sync with mntlib 44
- ***** a64l.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:27:40; author: entropy; state: Exp; lines: +0 -49
- broke out functions
- =============================================================================
- ***** abort.c
- ----------------------------
- revision 43.2
- date: 1994/02/27 13:16:42; author: entropy; state: Exp; lines: +9 -7
- A possibly more ANSI/POSIX compliant abort().
- =============================================================================
- ***** abs.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:33:08; author: entropy; state: Exp; lines: +4 -9
- broke out functions
- =============================================================================
- ***** atoi.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:33:32; author: entropy; state: Exp;
- NEW file, broken out from atol.c
- =============================================================================
- ***** atol.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:34:10; author: entropy; state: Exp; lines: +2 -8
- broke out functions
- =============================================================================
- ***** chmod.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:36:30; author: entropy; state: Exp; lines: +2 -24
- broke out functions
- =============================================================================
- ***** chown.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 18:37:20; author: entropy; state: Exp;
- NEW file, broken out from chmod.c
- =============================================================================
- ***** div.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:36:30; author: entropy; state: Exp; lines: +3 -32
- broke out functions
- =============================================================================
- ***** fgetpos.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:50:12; author: entropy; state: Exp;
- NEW file, broken out from fsetpos.c
- =============================================================================
- ***** fopen.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:36:30; author: entropy; state: Exp; lines: +20 -146
- broke out functions
- =============================================================================
- ***** fopen_i.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:46:12; author: entropy; state: Exp;
- NEW file, broken out from fopen.c
- =============================================================================
- ***** fputs.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:36:30; author: entropy; state: Exp; lines: +15 -26
- broke out functions
- =============================================================================
- ***** freopen.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:46:12; author: entropy; state: Exp;
- NEW file, broken out from fopen.c
- =============================================================================
- ***** fseek.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:36:30; author: entropy; state: Exp; lines: +5 -41
- broke out functions
- =============================================================================
- ***** fsetpos.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:36:30; author: entropy; state: Exp; lines: +17 -33
- broke out functions
- =============================================================================
- ***** ftell.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:49:16; author: entropy; state: Exp;
- NEW file, broken out from fseek.c
- =============================================================================
- ***** getegid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:52:34; author: entropy; state: Exp;
- NEW file, broken out from getuid.c
- =============================================================================
- ***** geteuid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:52:34; author: entropy; state: Exp;
- NEW file, broken out from getuid.c
- =============================================================================
- ***** getgid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:52:34; author: entropy; state: Exp;
- NEW file, broken out from getuid.c
- =============================================================================
- ***** getpid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:36:30; author: entropy; state: Exp; lines: +5 -2
- broke out functions
- =============================================================================
- ***** getppid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:50:12; author: entropy; state: Exp;
- NEW file, broken out from getpid.c
- =============================================================================
- ***** getuid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:36:30; author: entropy; state: Exp; lines: +5 -63
- broke out functions
- =============================================================================
- ***** l64a.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:27:04; author: entropy; state: Exp;
- NEW file, broke out from a64l.c.
- =============================================================================
- ***** labs.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:28:50; author: entropy; state: Exp;
- NEW file, formerly in abs.c
- =============================================================================
- ***** ldiv.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:42:52; author: entropy; state: Exp;
- NEW file, broken out from div.c
- =============================================================================
- ***** lib.h
- ----------------------------
- revision 43.3
- date: 1994/02/28 14:03:04; author: entropy; state: Exp; lines: +12 -0
- add some prototypes
- ----------------------------
- revision 43.2
- date: 1994/02/27 11:51:30; author: entropy; state: Exp; lines: +1 -0
- add _enoent() prototype.
- =============================================================================
- ***** puts.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:47:38; author: entropy; state: Exp;
- NEW file, broken out from fputs.c
- =============================================================================
- ***** regexp.c
- ----------------------------
- revision 43.2
- date: 1994/02/24 16:41:16; author: schwab; state: Exp; lines: +1 -0
- regcomp fails to compile "(a+|b)*" (from libtest/tregex.c). The bug
- is an uninitialized byte in reginsert.
- =============================================================================
- ***** rewind.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:49:16; author: entropy; state: Exp;
- NEW file, broken out from fseek.c
- =============================================================================
- ***** setegid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:52:34; author: entropy; state: Exp;
- NEW file, broken out from getuid.c
- =============================================================================
- ***** seteuid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:52:34; author: entropy; state: Exp;
- NEW file, broken out from getuid.c
- =============================================================================
- ***** setgid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:52:34; author: entropy; state: Exp;
- NEW file, broken out from getuid.c
- =============================================================================
- ***** setregid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:52:34; author: entropy; state: Exp;
- NEW file, broken out from getuid.c
- =============================================================================
- ***** setreuid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:52:34; author: entropy; state: Exp;
- NEW file, broken out from getuid.c
- =============================================================================
- ***** setuid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:52:34; author: entropy; state: Exp;
- NEW file, broken out from getuid.c
- =============================================================================
- ***** uidgid.c
- ----------------------------
- revision 43.2
- date: 1994/02/28 13:52:34; author: entropy; state: Exp;
- NEW file, broken out from getuid.c
- =============================================================================
- ***** include/PatchLev.h
- ----------------------------
- revision 43.2
- date: 1994/02/15 20:33:52; author: entropy; state: Exp; lines: +1 -1
- -
- =============================================================================
- ***** include/ioctl.h
- ----------------------------
- revision 43.5
- date: 1994/02/27 09:42:40; author: entropy; state: Exp; lines: +13 -8
- Add some more TIOCM_* definitions
- ----------------------------
- revision 43.4
- date: 1994/02/21 19:31:36; author: entropy; state: Exp; lines: +29 -0
- Catch up with MiNT's file.h: Add cursor ioctl's and some missing
- process ioctl's.
- ----------------------------
- revision 43.3
- date: 1994/02/21 19:20:24; author: entropy; state: Exp; lines: +9 -0
- Add TIOCMGET (faked) and related bitmasks.
- ----------------------------
- revision 43.2
- date: 1994/02/19 14:25:04; author: entropy; state: Exp; lines: +11 -9
- Added TIOCSDTR, TIOCCDTR and cleaned up a bit.
- =============================================================================
- ***** include/mintbind.h
- ----------------------------
- revision 43.2
- date: 1994/02/26 08:45:42; author: entropy; state: Exp; lines: +8 -0
- Add new MiNT system calls: Tmalarm(), Psigintr(), Suptime().
- All are unofficial and subject to change.
- =============================================================================
- ***** include/ostruct.h
- ----------------------------
- revision 43.2
- date: 1994/02/22 17:47:58; author: entropy; state: Exp; lines: +4 -0
- Complete the _PARAM structure used with Initmous().
- =============================================================================
-
- New files: atoi.c chown.c fgetpos.c fopen_i.c freopen.c ftell.c getegid.c
- geteuid.c getgid.c getppid.c l64a.c labs.c ldiv.c puts.c rewind.c setegid.c
- seteuid.c setgid.c setregid.c setreuid.c setuid.c uidgid.c
-
- == end sync
-
- ---------------------------- Patchlevel 98 ---------------------------
-
- falcon.h:: howard
- corrections from howard
-